假设我有一份文档
{
id: 1,
fruits: []
}
这里的fruits作为一个SET进行操作
现在我想要对主键为1的文档中的fruits数组进行原子性添加值,如果该文档不存在则创建它(即在底层使用SetInsert ReQL)
我还需要对增量进行相同的操作(ReQL .Add)
显然这不能在客户端代码中完成,因为它会破坏原子性并导致不一致的数据
希望能够像这样实现
r.table('results').insert({
id: '62c70132-6516-4279-9803-8daf407ffa5c',
counter: r.row('counter').add(1).default(0)
}, {conflict: "update"})
但是它会出现“RqlCompileError: r.row在此上下文中未定义”的错误。
任何帮助/指导都将不胜感激,谢谢!
r.row
在 ReQL 语言中基本上表示"针对每一行你将进行操作的当前行"。在插入中,r.row
没有意义,这就是出现错误的原因。然而,如果你正在寻找特定的文档,那么你可以通过子查询获取文档的字段,可以参考下面的解答 :) - Chris Foster