javascript - Mongoose 有条件更新文档

标签 javascript node.js mongodb mongoose

如果此 ID 是当前用户的 Id 并且设置了此字段,我需要取消设置 mongo 字段,该字段是 ObjectId 并引用另一个架构。在其他情况下,如果未设置此字段,则应设置当前用户 ID。如果设置了该字段并且 ObjectID 与当前用户 ID 不匹配,则 mongo 应返回现有文档,但不会对 ObjectID 字段应用任何更改。

现在我通过 ID 查找条目,然后检查 JS 代码中的情况。然后我执行另一个查询以更新文档。但我认为这可以通过 mongo 在一个查询中完成。

我在我的 NodeJS 中使用 Mongoose

最佳答案

Mongoose findOneAndUpdate是您正在寻找的函数。它具有以下通用语法。 query.findOneAndUpdate(条件、更新、选项、回调) 编辑:附加示例查询。

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.
});

关于javascript - Mongoose 有条件更新文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41322546/

相关文章:

node.js - 在 MongoDB 键中使用 '.'(或其他特殊字符)的惯用方法是什么?

javascript - jQuery .prop() 未按预期工作

javascript - 如何防止恶意使用我的套接字?

node.js - 通用错误处理程序 MEANJS、mongoose、winston

node.js - 如何将 mongoDB 与 Node 一起使用

java - 使用 Map 值更新 mongodb,该值包含 JAVA 中 '$' 的键

javascript - map函数JS中的switch语句/条件

javascript - 单击按钮时显示 Bootstrap 警告框

node.js - 子进程未调用关闭事件

node.js - 在没有 package.json 文件的文件夹中运行 "npm install --save X"