У меня около 200 баз данных mongodb. Каждая база данных имеет коллекцию под названием «Группа», и в этой коллекции есть поле «meldingId».
Можно ли сделать один запрос mongodb, который находит все значения в разных базах данных.
(Мне удалось выбрать базы данных bij, переходящие через базы данных, с помощью selectDB ($ database_name))
В оболочке Mongo это можно сделать, используя db.getSiblingDB()
чтобы переключиться на базу данных администратора и получить список 200 баз данных, выполнив команду admin 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); }); });