在MongoDB shell中,如何列出当前使用的数据库的所有集合?


当前回答

mongoshell上的以下命令是常见的。

show databases
show collections

而且

show dbs
use mydb
db.getCollectionNames()

有时,查看所有集合以及作为整体命名空间一部分的集合上的索引很有用:

以下是您的操作方法:

db.getCollectionNames().forEach(function(collection) {
    indexes = db[collection].getIndexes();
    print("Indexes for " + collection + ":");
    printjson(indexes);
});

在这三个命令和这段代码之间,您应该很熟悉!

其他回答

除了其他人建议的选项外:

show collections  // Output every collection
show tables
db.getCollectionNames() // Shows all collections as a list

如果您想知道每个集合是如何创建的(例如,它是一个具有特定大小的上限集合),还有另一种方法非常方便:

db.system.namespaces.find()

显示表

显示表格

or

db.getCollectionNames();

> show collections

将列出当前选定DB中的所有集合,如命令行帮助(help)中所述。

为此,我使用listCollections(支持MongoDB 3.0及更高版本)。

例子:

db.runCommand({ listCollections: 1, filter: {}, nameOnly: true });

要获取更多信息,如集合的索引:

db.runCommand({ listCollections: 1, filter: {}, nameOnly: false });

要仅打印集合名称:

db.runCommand({ listCollections: 1, filter: {}, nameOnly: true }).cursor.firstBatch.forEach(v => {print(v.name)})

我觉得这提供了更多的灵活性。

阅读更多:listCollections

使用mongo shell中的以下命令:

show collections