Node.js MongoClient本机FindAndModify“;“需要更新或删除”;错误

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

我的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(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){