javascript - findAndModify - MongoError : exception: must specify remove or update

标签 javascript node.js mongodb findandmodify

我想更新一个数组并返回文档。我的 findAndModify 语法是否正确?

this.becomeFollower = function(title, username, callback){
    "use strict"

    posts.findAndModify({
        query: {"title":title, "roster":"yes"},
        update: { "$addToSet": { "followers":username } },
        new: true,
        upsert: true
        }, 
        function(err, doc){
            console.log('find and modified  ' +doc);
        });

}

我用这个没问题:

    posts.update({"title":title, "roster":"yes"}, { "$addToSet": { "followers":username } }, function(err, roster){
        "use strict"
        if(err) return callback(err, null);
        callback(err, roster);
    });

最佳答案

查看 docs for node-mongodb findAndModify ;签名看起来像:

collection.findAndModify(query, sort, update, options, callback)

所以你应该这样做:

  posts.findAndModify(
    {"title":title, "roster":"yes"},
    [['_id','asc']],
    { "$addToSet": { "followers":username } },
    {new: true, upsert: true}, 
    function(err, doc){
        console.log('find and modified  ' +doc);
    }
  );

sort 参数可能是可选的,但不清楚,因此我将其包含在示例中。

关于javascript - findAndModify - MongoError : exception: must specify remove or update,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22671946/

相关文章:

html - 为什么我们的对象没有被删除? Node 、蒙戈、html

arrays - 比较 MongoDB 中的数组

python - pre_save 在 mongoengine update_one 中不起作用

javascript - CSS 不会出现在 HTML 和 Node 中

javascript - 使用 Javascript 创建 SVG 图形?

node.js - Nodejs Express 捕获对服务器上公共(public)文件的调用

javascript - 使用 html 字符串中的 id 获取名称的正则表达式

javascript - 如何在 Bootstrap 3 中将 font Awesome 图标置于图像之上?

javascript - 如何在 javascript 中显示 Javascript 变量?

mongodb - 用 Meteor 中的新 mongo 集合替换现有 mongo 集合的最简单方法