Node.js MongoClient本机FindAndModify“;“需要更新或删除”;错误
我的node.js客户端如下所示:Node.js MongoClient本机FindAndModify“;“需要更新或删除”;错误,node.js,mongodb,mongodb-query,Node.js,Mongodb,Mongodb Query,我的node.js客户端如下所示: var MongoClient = require('mongodb').MongoClient; MongoClient.connect(mongoendpoint, function(err, db) { if(err) throw err; var collection = db.collection('test-collection'); var ws = new WebSocket(websocke
var MongoClient = require('mongodb').MongoClient;
MongoClient.connect(mongoendpoint, function(err, db) {
if(err) throw err;
var collection = db.collection('test-collection');
var ws = new WebSocket(websocket_Endpoint);
ws.on('open', function() {
log.info('Connected.');
});
ws.on('message', function(data, flags) {
wsevent = JSON.parse(data);
var args = {
'query': {
id: '1.2.3.4'
},
'update': {
$set: {
lastseen: "201405231344"
},
$addToSet: {
record: "event123"
}
},
'new': true,
'upsert': true
};
collection.findAndModify(args, function(err, doc){
log.info(err);
});
});
});
当我运行此命令时,会出现以下错误:
info: name=MongoError, ok=0, errmsg=need remove or update
我不明白为什么。我可以使用RoboMongo运行与上面完全相同的args
json,查询工作正常
Robomongo查询
db['test-collection'].findAndModify({“query”:{“id”:“1.2.3.4”},“update”:{“$setOnInsert”:{“lastseen”:“201405231344”},$addToSet”:{“record”:“event123”},“new”:true,“upsert”:true})代码>
我缺少什么?您的args
部分错误,它应该是一个数组,不需要“查询”和“更新”的键值。“选项”值也需要是一个对象(子文档):
或者特别是在通话中:
collection.findAndModify(
{ id: '1.2.3.4' },
{
$set: { lastseen: "201405231344" },
$addToSet: { record: "event123" }
},
{
'new': true,
'upsert': false
},
function(err, doc){
示例也包括在列表中
collection.findAndModify(
{ id: '1.2.3.4' },
{
$set: { lastseen: "201405231344" },
$addToSet: { record: "event123" }
},
{
'new': true,
'upsert': false
},
function(err, doc){