Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Mongodb查找并修改继续替换我的文档_Node.js_Mongodb - Fatal编程技术网

Node.js Mongodb查找并修改继续替换我的文档

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

嘿,伙计们,我正在尝试执行findAndModify,但它一直在替换新文档并覆盖旧文档,这就是我目前所拥有的

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”之后,我需要更新的文档返回。您是否尝试按照我的建议合并选项?要理解所有大括号有点困难,因为您没有为堆栈溢出代码块宽度格式化代码。