11

配列を更新してドキュメントを返したいと思います。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);
    });
4

1 に答える 1

19

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わかりにくいので例に含めました。

于 2014-03-26T20:40:26.673 に答える