MongoDB 更新多个集合

标签 mongodb

我的 mongo 数据库包含以下集合名称,如

10.9.40.46
10.9.40.47
10.9.40.48
10.9.40.49
10.9.40.50
10.9.40.51
10.9.40.52

在所有包含 N 个文档的集合中,默认情况下每个文档都有公共(public)键名作为“status”,所有文档都有“status”1,当我更新我的集合以将“status”1 更改为 0 时,我使用以下查询

 db.getCollection("10.9.40.46").update({"status":1},{$set:{"status":0}},false,true)

上面的查询工作正常但是,我想更新我所有的集合然后我传递我的集合名称来手动查询,所以在 MongoDB 中有任何概念我使用数据库并使用单个查询或其他东西更新该数据库中的所有集合文档像那样?我也使用循环读取所有集合并更新文档,但由于集合数量大,我需要很长时间。

最佳答案

不,没有 API 可以通过单个命令对多个集合执行相同的操作。那是因为您通常不会像使用它们那样使用集合。集合用于对相同类型的文档进行分组,而不是用于根据内容和/或键对它们进行分组。

组织您拥有的文档的正常方法是将它们全部放在一个集合中,为每个文档添加一个 IP 地址字段,并在 ip 字段上创建一个索引以加快查找速度。

关于MongoDB 更新多个集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19198908/

相关文章:

java - 使用 Java Spring 连接到 MongoDB 3.0

MongoDB 关系 : embed or reference?

c# - 尝试并发更新(AddToSet)到 mongodb 中的集合并且它不能正常工作

mongodb - 无法使用 --db 创建备份 mongodump。身份验证失败

mongodb - 为什么数据会保留在 mongo docker 容器中?

mongodb - 如何配置sonata用户包

mongodb - Zend Framework 2 的注释命名空间未加载 DoctrineMongoODMModule

mongodb - 如何使用 MongoDb Scala 驱动程序进行同步查询

mongodb - 自定义函数计算列 mongodb 投影

MongoDB 副本集 - 参数 linuxConfiguration.ssh.publicKeys.keyData 的值无效