我有大约200个mongodb数据库。 每个数据库都有一个名为“Group”的集合,在这个集合中有一个名为'meldingId'的字段。
是否可以创建一个查找不同数据库中所有值的mongodb查询。
(我设法通过selectDB($ database_name)选择通过数据库循环的数据库bij)
答案 0 :(得分:3)
在Mongo shell中,可以使用 db.getSiblingDB()
方法切换到admin数据库并通过运行admin命令Sub FillAtoF()
Dim lastrow As Integer
lastrow = Cells(Rows.Count, "A").End(xlUp).Row
Dim rng As Range
Set rng = Range(Cells(6, "A"), Cells(lastrow, "F"))
For Each Area In rng.SpecialCells(xlCellTypeBlanks)
Area.Cells = Range(Area.Address).Offset(-1, 0).Value
Next Area
End Sub
获取200个数据库的列表来完成此操作。迭代数据库列表并再次使用 db.getSiblingDB()
在数据库之间切换,查询db.runCommand({ "listDatabases": 1 })
集合中的Group
值。像这样:
meldingId
答案 1 :(得分:1)
MongoDB 一次查询多个数据库 与@chridam 的答案相同,但在泛化数据库名称方面略有改进,并作为单行: 该命令将统计不同数据库中所有同名的集合:
collectionName = "sites"; db = db.getSiblingDB("admin"); dbs = db.runCommand({ "listDatabases": 1 }).databases; dbs.forEach(function(database) { db = db.getSiblingDB(database.name); collection = db.getCollection(collectionName); print(collection + " count: " + collection.count())})
结果是:
db_0.sites count: 0
db_1.sites count: 0
db_2.sites count: 3
db_3.sites count: 4
您可以将它用于不同的目的,只需更改 collectionName 值或 forEach 函数中的查询即可。