距开课0天0时0分-10184213秒
为情所困2017-05-02 09:25:48 0 2 245
[MongoDB讨论组]举报回复话题 ↕
现在有一个需求是使用 MongoDB 查找文档的同时将文档中的字段给更新掉,也就是用一个命令完成查找以及更新(原子性)。Mongo 中对于单个文档是有类似的方法的,比如 FindAndModify 查找并更新的操作,并且是原子性的,但是只作用于单个文档。问下有没有可以实现查找多个文档并且相应的更新文档的字段的操作。
2
0
分享
phpcn_u1582 2017-05-02 09:27:482楼
mongoose更新,可以批量操作,update的multi属性设置为true,http://www.nonb.cn/blog/nodej...
赞 +0添加回复
漂亮男人 2017-05-02 09:27:481楼
一、MongoDB中原子性:
1、针对单一文档都是原子性的,FindAnyModify只操作一个文档,所以是原子性的;
2、针对多个文档的操作,每一次对单个文档的操作实现了原子性,但是整个操作不是原子性的,在操作过程中可能有来自其他的针对其中文档的操作。
但是在大部分的场景下,单一文档的原子性已经满足要求了;
如果需要对多个文档的操作实现原子性,需要配合自己的代码/设计来实现了。
二、针对您的表述的需求,其实用update的multi选项,或者直接使用updateMany就可以达成。
db.collection.updateMany() db.collection.update(,{multi : true})
供参考。
Love MongoDB! Have Fun!
phpcn_u1582 2017-05-02 09:27:482楼
mongoose更新,可以批量操作,update的multi属性设置为true,http://www.nonb.cn/blog/nodej...
赞 +0添加回复
漂亮男人 2017-05-02 09:27:481楼
一、MongoDB中原子性:
1、针对单一文档都是原子性的,FindAnyModify只操作一个文档,所以是原子性的;
2、针对多个文档的操作,每一次对单个文档的操作实现了原子性,但是整个操作不是原子性的,在操作过程中可能有来自其他的针对其中文档的操作。
但是在大部分的场景下,单一文档的原子性已经满足要求了;
如果需要对多个文档的操作实现原子性,需要配合自己的代码/设计来实现了。
二、针对您的表述的需求,其实用update的multi选项,或者直接使用updateMany就可以达成。
供参考。
Love MongoDB! Have Fun!
赞 +0添加回复