通过一个查询和条件重新思考db多次更新
Rethinkdb multiple update by one query and conditional
如何使用javascript在一个查询和条件下执行多个更新?
例如,我的文档:
[
{
"Author": "Auto",
"Number": 5,
"RandomText": "dddbd",
"Tag": "Srebro",
"id": "10fbd309-5a7a-4cd4-ac68-c71d7a336498"
},
{
"Author": "Auto",
"Number": 8,
"RandomText": "cccac",
"Tag": "Srebro",
"id": "37f9694d-cde8-46bd-8581-e85515f8262f"
},
{
"Author": "Auto",
"Number": 6,
"RandomText": "fffaf",
"Tag": "Srebro",
"id": "b7559a48-a01a-4f26-89cf-35373bdbb411"
}
]
这是我的问题:
UpdateIndex()
{
this.r.table(this.params.table).update((row) => {
let result;
console.log(this.r.expr([row]));
this.r.branch(
this.r.row(this.Index2).lt(10),
result = "Lucky",
result = "Good"
);
/*
if(this.r.row("Number").lt(3)) result = "Bad";
else if (this.r.row("Number").lt(5)) result = "Poor";
else if (this.r.row("Number").lt(10)) result = "Lucky";
else if (this.r.row("Number").lt(20)) result = "Good";
else if (this.r.row("Number").lt(50)) result = "Great";
else result = "Mystic";
*/
console.log(result);
return this.r.object(this.Index2, result);
}).run(this.conn, this.CheckResult.bind(this));
}
我为什么要这么做?我创建了第二个索引(this.Index2="意见"),现在我想用我的条件描述的值填充这个索引。但是每个文档都有相同的值(例如:Bad)。如何更新文档,但为每个文档运行条件,并使用一个查询?
分配给这样的局部变量(在您的情况下为result
)与RethinkDB的驱动程序构建要发送到服务器的查询对象的方式不兼容。当您编写如上所述的代码时,您在客户端上将一个文本字符串存储在本地变量中一次(而不是在服务器上每行存储一次),然后在函数底部返回的查询中将该文本发送到服务器。您也不能以您尝试的方式使用console.log
;在客户端上运行,但查询是在服务器上执行的。你可能会发现http://rethinkdb.com/blog/lambda-functions/有助于理解客户端如何处理传递给update
等命令的匿名函数。
您应该使用do
进行变量绑定:
r.table(params.table).update(function(row) {
return r.branch(r.row(Index2).lt(10), "Lucky", "Good").do(function(res) {
return r.object(Index2, res);
});
})
相关文章:
- 通过js在新选项卡中有条件地打开url
- Javascript-在一个数组中搜索整个单词,并创建一个符合条件的新数组
- 返回三元条件下的新promise Q
- Regex用于在特定条件下为新句子添加空格或句号
- 如何在使用 ng-repeat 显示表数据时放置条件新行
- 添加新对象时的循环和条件
- 我想添加条件以更改此脚本中的图像或创建新的图像
- 创建一个新的数组,通过在jQuery中使用条件迭代来组合两个现有对象
- Firebase-javascript API 仅在一个触发器中获取满足条件的数据节点.还会为每个查询建立新的 TCP
- 选择具有条件的数组中的对象并生成新的数组 javascript
- 如果条件为 false,则使用 jquery 阻止 SharePoint 2010 中列出新表单中的默认值
- 如何在创建新对象时应用条件检查并执行代码
- 如果条件为真,我如何创建一个新对象
- 在分页期间向实际搜索url添加新条件
- 从2个数组中创建一个新的数组——带条件
- 在新选项卡中有条件地打开链接
- 如何在meteor上创建条件,将admin角色分配给新用户
- 循环遍历对象数组,并按一定条件生成新数组
- 新窗口对象和链接单击之间的竞争条件
- 通过一个查询和条件重新思考db多次更新