mongodb 从不同的数据库中选择

arj*_*oon 5 php mongodb mongodb-query

我有大约 200 个 mongodb 数据库。每个数据库都有一个名为“Group”的集合,在这个集合中有一个名为“meldingId”的字段。

是否可以进行一个 mongodb 查询来查找不同数据库中的所有值。

(我设法通过 selectDB($database_name) 选择数据库 bij 循环遍历数据库)

chr*_*dam 5

在 Mongo shell 中,这可以通过使用db.getSiblingDB()方法切换到 admin 数据库并通过运行 admin 命令获取 200 个数据库的列表来完成db.runCommand({ "listDatabases": 1 })。迭代数据库列表并db.getSiblingDB()再次使用以在数据库之间切换,查询值的Group集合meldingId。像这样的东西:

// Switch to admin database and get list of databases.
db = db.getSiblingDB("admin");
dbs = db.runCommand({ "listDatabases": 1 }).databases;

// Iterate through each database.
dbs.forEach(function(database) {
    db = db.getSiblingDB(database.name);

    // Get the Group collection
    collection = db.getCollection("Group");

    // Iterate through all documents in collection.
    /*
        collection.find().forEach(function(doc) {

            // Print the meldingId field.
            print(doc.meldingId);
        });
    */

    var meldingIds = collection.distinct('meldingId');
    print(meldingIds);

});
Run Code Online (Sandbox Code Playgroud)