考虑这个架构:
var UserSchema = new Schema({
...
user_id: {type:String},
previous_selection: {type:String},
current_selection: {type:String}
});
我需要编写一个函数,该函数会使用previous_selection
的{{1}}值更新current_selection
的值。
有没有办法用user_id
执行此操作?
像 -
findOneAndUpdate
或者有更好的方法来实现这个吗?我是否必须执行MyModel.findOneAndUpdate(
{ user_id: id },
{ $set: {"previous_selection": current_selection }},
{},
callback
);
然后更新?
答案 0 :(得分:3)
根据您的关注,您可以执行此操作来更新整个集合。
db.MyModel.find({}).snapshot().forEach(
function (elem) {
db.MyModel.update(
{
_id: elem._id
},
{
$set: {
"previous_selection": elem.current_selection
}
}
);
});
否则你可以通过id找到并且可以使用相应的current_selection进行更新。