我是Node-Red和MongoDB的新手。
我需要使用Node-Red更新集合中的文档。
这是我在函数节点中的代码:
var newMsg = msg;
newMsg.operation = 'findAndModify';
newMsg.payload = {
query: { "UserKey": "mykey" },
update: { $set: {"Locked": false } }
};
return newMsg;
但得到以下错误
" Monog错误:需要删除或更新"。
编辑:
虽然以下代码在Mongo shell中运行良好。
db.Users.findAndModify({
query: { "UserKey": "mykey" },
update: { $set: { "Locked": false } }
})
由于
答案 0 :(得分:0)
findAndModify
不是mongo节点支持的方法之一,您必须将其作为2阶段进程。
使用 Mongo In 节点执行find
,然后更新有效负载并将其反馈到 Mongo Out 节点以执行store
答案 1 :(得分:0)
@ phani-indra,例如,如果您有一个具有文档的用户集合:
{ "chatid" : 324323,
"alert" : false,
"accesslevel" : 4,
"_id" : ObjectId("5d76b33c6ff21e0155d035a0")
}
,并且您想将键“ alert”更改为true,因此NodeRED中的功能节点将类似于:
var newMsg = {
'collection': 'users',
'operation': 'update',
'query': {
chatid : 324323
},
'payload': {
$set: {
alert : false
}
}
};
return newMsg;
然后将功能节点输入到 Mongo Out 节点。