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

查看:73
本文介绍了问下 MongoDB 中有没有批量查找文档的同时然后更新文档指定字段值的功能?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

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

解决方案

一、MongoDB中原子性:

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

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

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

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

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

db.collection.updateMany()

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

供参考。

Love MongoDB! Have Fun!

这篇关于问下 MongoDB 中有没有批量查找文档的同时然后更新文档指定字段值的功能?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆