findAndModify - MongoError:exception:必须指定删除或更新 [英] findAndModify - MongoError: exception: must specify remove or update

查看:105
本文介绍了findAndModify - MongoError:exception:必须指定删除或更新的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

Id like to update an array and return the doc. Is my findAndModify syntax correct?

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);
        });

}

我使用此功能没有问题:

I had no problem using this:

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


推荐答案

查看 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 参数可能是可选的,但是它不清楚所以我把它包含在示例中。

The sort argument is probably optional, but it's unclear so I included it in the example.

这篇关于findAndModify - MongoError:exception:必须指定删除或更新的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆