Node.js Mongodb查找并修改继续替换我的文档
嘿,伙计们,我正在尝试执行findAndModify,但它一直在替换新文档并覆盖旧文档,这就是我目前所拥有的Node.js Mongodb查找并修改继续替换我的文档,node.js,mongodb,Node.js,Mongodb,嘿,伙计们,我正在尝试执行findAndModify,但它一直在替换新文档并覆盖旧文档,这就是我目前所拥有的 posts.findAndModify({'permalink': data.permalink},{ update: {$inc: { 'votes.up': 1 }},'$addToSet': {'votes.voted_id': data._id} },{ new: true },{upsert:true}, function(err, post) { "u
posts.findAndModify({'permalink': data.permalink},{ update: {$inc: { 'votes.up': 1 }},'$addToSet': {'votes.voted_id': data._id} },{ new: true },{upsert:true}, function(err, post) {
"use strict";
if (err) return callback(err, null);
callback(err, post);
});
您正在对node.js调用使用shell参数约定,因此您的参数不正确 应将其重新格式化为单独的参数,如下所示:
posts.findAndModify(
{'permalink': data.permalink},
null,
{$inc: {'votes.up': 1},
'$addToSet': {'votes.voted_id': data._id}},
{new: true,
upsert: true},
function(err, post) {
"use strict";
if (err) return callback(err, null);
callback(err, post);
});
文档。您想做什么?现在,它正在根据您的查询修改现有文档。
upsert
和new
选项需要作为单个选项对象传递:{new:true,upsert:true}
@wiredparie hi感谢您的回复,我正在尝试通过增加1和$addToSet数据来更新“vows.up”。\u id到“vows.voated\u id”之后,我需要更新的文档返回。您是否尝试按照我的建议合并选项?要理解所有大括号有点困难,因为您没有为堆栈溢出代码块宽度格式化代码。