Mongodb findAndModify节点js

时间:2014-07-09 08:18:14

标签: javascript node.js mongodb mongodb-query

以下代码在节点js中给出了异常,说:“需要删除或更新”

var args = {
                query: { _id: _id },
                update: { $set: data},
                new: true,
                remove:false
            };

            db.collection(COLLECTION.INVENTORY_LOCATION).findAndModify(args,
                function (err, results) {
                    if (err) {
                        return callback(err);
                    } else {
                        console.log(results);
                        callback(null, results);
                    }
                });

由于我已指定更新操作,因此无法解决问题。

2 个答案:

答案 0 :(得分:20)

语法is different in the node driver而不是shell,这是您正在使用的语法。

db.collection("collection_name").findAndModify(
    { _id: _id },     // query
    [],               // represents a sort order if multiple matches
    { $set: data },   // update statement
    { new: true },    // options - new to return the modified document
    function(err,doc) {

    }
);

.findAndRemove()

有一个单独的功能

答案 1 :(得分:0)

作为the documentation for the remove parameter of the findAndModify function states

  

删除:<boolean>
  必须指定删除更新字段。删除   查询字段中指定的文档。将其设置为 true 以删除   选定的文件。默认值为false。

默认值为false,因此您根本不必提供它。

我认为问题在于您提供 updateremove个参数。请尝试删除remove参数。