首页 > 解决方案 > MongoDB:更新文档并返回更新的文档

问题描述

我正在尝试运行一个查询,我正在尝试使用 mongodb-nodejs 本机驱动程序在我的后端 Node JS api 中使用upsert文档。findOneAndUpdate我面临的问题是,如果不存在匹配的文档,则null无论何时发生,它都不会返回更新的文档并且我得到了。upsert

我已经尝试过添加new选项,但它似乎不适用于findOneAndUpdate. 我的查询如下:

collection.findOneAndUpdate(
      filter,
      { $inc: { att1: value1 } },
      { upsert: true, new: true }
    );

标签: node.jsmongodbexpress

解决方案


尝试

collection.findOneAndUpdate(
      filter,
      { $inc: { att1: value1 } },
      { upsert: true, returnOriginal: false }
    );

你得到 null 的原因是 default returnOriginal:true。如果没有匹配,则返回 null。

当没有匹配发生时,文档对它返回的内容相当不尊重。所以我说“试试”。


推荐阅读