在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
推荐文章
- MongoDB在v4之前不兼容ACID意味着什么?
- 显示所有集合中的所有内容
- MongoDB:更新一个字段上的每个文档
- 我如何在MongoDB中部分更新一个对象,以便新对象将覆盖/合并现有的一个
- MongoDB的命名约定是什么?
- MongoDB在尝试插入整数时插入浮点数
- 通过将useNewUrlParser设置为true来避免“当前URL字符串解析器已弃用”警告
- 如何查询嵌套对象?
- NoSQL (MongoDB) vs Lucene(或Solr)作为您的数据库
- 如何重命名MongoDB中所有文档的字段?
- 如何复制一个集合从一个数据库到另一个在MongoDB
- 比较mongoose _id和字符串
- MongoDB:如何将多个集合中的数据合并为一个?
- MongoDB - admin用户未授权
- 如何在MongoDB的shell中打印出超过20个项目(文档)?