Mongoose Model.update无效,但Model.findOneAndUpdate有效

时间:2015-12-10 18:54:40

标签: mongodb mongoose

根据http://mongoosejs.com/docs/2.7.x/docs/updating-documents.html,更新方法的工作原理如下:

    MyModel.update(
        { user: { $in: [user_id]} },
        { $set : { dismissed: true } },
        { multi : true },
        function(err,na){

            console.log('err',err);
            console.log('na',na);

        }
    );

但是我得到了这个:

{ ok: 0, n: 0, nModified: 0 }

这里有什么问题? 如果我为 findOneAndUpdate 更改更新,则可以正常工作。 有什么想法吗?

修改

我刚刚为@jonasnas建议改变了倍数,但我仍然得到相同的结果

1 个答案:

答案 0 :(得分:0)

您需要在选项中使用multi代替multiple,并确保user_id类型正确无误(integer / string

同样在mongoose中你需要摆脱第二个参数中的$set

    MyModel.update(
        { user: { $in: [user_id]} },
        { dismissed: true },
        { multi : true },
        function(err,na){

            console.log('err',err);
            console.log('na',na);

        }
    );