gpt4 book ai didi

mongodb - 遍历所有 Mongo 数据库

转载 作者:IT老高 更新时间:2023-10-28 13:09:41 34 4
gpt4 key购买 nike

我对 MongoDB 比较陌生,我一直无法找到我正在寻找的解决方案。

我想遍历所有 mongo 数据库并在每个数据库的每个集合上运行一些命令。我可以运行以下命令来获取所有数据库名称:

db.runCommand( { listDatabases: 1 } ).databases.forEach(function (db) {
print ("db=" + db.name);
});

但是如何在 forEach 循环中“切换”数据库,以便对每个数据库运行查询?我想在循环中使用像 use db.name 这样的东西,但这不起作用。

最佳答案

您可以使用 db.getSiblingDB() 在数据库之间切换,使用 db.getCollectionNames() 来获取集合名称。请注意,您必须从 admin 数据库运行第一个命令才能获取数据库列表。用于实现您想要做的事情的 shell 中的简短脚本如下所示:

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

// Iterate through each database and get its collections.
dbs.forEach(function(database) {
db = db.getSiblingDB(database.name);
cols = db.getCollectionNames();

// Iterate through each collection.
cols.forEach(function(col) {

// Do something with each collection.
print(col);
});

});

关于mongodb - 遍历所有 Mongo 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29609667/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com