以下代码在节点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);
}
});
由于我已指定更新操作,因此无法解决问题。
答案 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) {
}
);
有一个单独的功能
答案 1 :(得分:0)
作为the documentation for the remove
parameter of the findAndModify
function states:
删除:
<boolean>
:
必须指定删除或更新字段。删除 查询字段中指定的文档。将其设置为 true 以删除 选定的文件。默认值为false。
默认值为false,因此您根本不必提供它。
我认为问题在于您提供 update
和remove
个参数。请尝试删除remove
参数。