问下 MongoDB 中有没有批量查找文档的同时然后更新文档指定字段值的功能?

 Yx宵夜 发布于 2022-10-25 05:05

现在有一个需求是使用 MongoDB 查找文档的同时将文档中的字段给更新掉,也就是用一个命令完成查找以及更新(原子性)。
Mongo 中对于单个文档是有类似的方法的,比如 FindAndModify 查找并更新的操作,并且是原子性的,但是只作用于单个文档。
问下有没有可以实现查找多个文档并且相应的更新文档的字段的操作。

2 个回答
  • 一、MongoDB中原子性:

    1、针对单一文档都是原子性的,FindAnyModify只操作一个文档,所以是原子性的;

    2、针对多个文档的操作,每一次对单个文档的操作实现了原子性,但是整个操作不是原子性的,在操作过程中可能有来自其他的针对其中文档的操作。

    但是在大部分的场景下,单一文档的原子性已经满足要求了;

    如果需要对多个文档的操作实现原子性,需要配合自己的代码/设计来实现了。

    二、针对您的表述的需求,其实用update的multi选项,或者直接使用updateMany就可以达成。

    db.collection.updateMany()
    
    db.collection.update(,{multi : true})
    

    供参考。

    Love MongoDB! Have Fun!

    2022-10-26 14:21 回答
  • mongoose更新,可以批量操作,update的multi属性设置为true,http://www.nonb.cn/blog/nodej...

    2022-10-26 14:21 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有