我需要取消设置作为ObjectId的mongo字段,如果此ID是当前用户的Id并且设置了此字段,则引用另一个模式。在其他情况下,如果未设置此字段,则应设置当前用户ID。如果字段已设置且ObjectID与当前用户ID不匹配,则mongo应返回现有文档,但不会更改为ObjectID字段。
现在我通过ID查找条目,然后在我的JS代码中检查案例。然后我执行另一个查询以更新文档。但我认为这可以通过mongo在一个查询中完成。
我在我的nodeJS中使用mongoose
答案 0 :(得分:1)
Mongoose findOneAndUpdate是您正在寻找的功能。它具有以下一般语法。
query.findOneAndUpdate(conditions, update, options, callback)
编辑:附加示例查询。
var query = {"_id": id};
var update = {name: {first: 'john', last: 'smith'}};
var options = {new: true};
People.findOneAndUpdate(query, update, options, function(err, person) {
if (err) {
console.log('got an error');
}
// at this point person is null.
});