我的 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/