我想从数组中提取一些值并同时尝试更新它.
userSchema.statics.experience = function (id,xper,delet,callback) { var update = { $pull:{ 'profile.experience' : delet }, $push: { 'profile.experience': xper } }; this.findByIdAndUpdate(id,update,{ 'new': true},function(err,doc) { if (err) { callback(err); } else if(doc){ callback(null,doc); } }); };
我得到的错误就像 MongoError: exception: Cannot update 'profile.experience' and 'profile.experience' at the same time
我找到了这个解释:
问题是MongoDB不允许在同一更新调用中对同一属性进行多个操作.这意味着这两个操作必须在两个单独的原子操作中发生.
你可以阅读那些帖子:
使用mongo同时拉和添加
多个mongo更新运算符在一个语句中?