node.js - MongoDB:更新文档并返回更新的文档
问题描述
我正在尝试运行一个查询,我正在尝试使用 mongodb-nodejs 本机驱动程序在我的后端 Node JS api 中使用upsert
文档。findOneAndUpdate
我面临的问题是,如果不存在匹配的文档,则null
无论何时发生,它都不会返回更新的文档并且我得到了。upsert
我已经尝试过添加new
选项,但它似乎不适用于findOneAndUpdate
. 我的查询如下:
collection.findOneAndUpdate(
filter,
{ $inc: { att1: value1 } },
{ upsert: true, new: true }
);
解决方案
尝试
collection.findOneAndUpdate(
filter,
{ $inc: { att1: value1 } },
{ upsert: true, returnOriginal: false }
);
你得到 null 的原因是 default returnOriginal:true
。如果没有匹配,则返回 null。
当没有匹配发生时,文档对它返回的内容相当不尊重。所以我说“试试”。
推荐阅读
- python-3.x - 混淆矩阵中的metrics=accuracy和precision有什么区别?
- mysql - 用 group 对项目进行分组
- virtual-reality - React360 实体示例
- java - 如果调用了一个抽象方法,是什么决定了它的哪个实现方法被调用?
- identityserver4 - 在 IdentityServer4 中更改用户声明后获取新访问令牌的正确方法
- java - 如果从方法返回值,字符串池是否有效?
- ssms - 如何将 ms-olap 中的一个立方体分区数据复制到另一台服务器上的空分区?
- java - 如何评估 cron 表达式在执行时是否“在窗口中”?
- unit-testing - 带有急切加载的 EntityFrameworkCore.InMemory 3.0 异常
- javascript - 使用 Jquery 选择并复制代码标签内的所有元素