MongoDB显示所有集合的所有内容


161

是否可以在MongoDB中显示所有集合及其内容?

是唯一一个一个显示的方法吗?

Answers:


261

进入终端/命令行后,请按以下方式访问要使用的数据库/集合:

show dbs
use <db name>
show collections

选择您的收藏集,然后键入以下内容以查看该收藏集的所有内容:

db.collectionName.find()

有关更多信息,请参见《 MongoDB快速参考指南》


请说明此为正确答案。您只能通过编写代码查看所有集合中的所有内容,而不能通过cli查询
imbatman

18
如果您需要在视觉上整理呈现给您的收藏,我还建议: db.collectionName.find().pretty()
Steven Ventimiglia

2
请记住,如果集合名称中包含某些字符(例如连字符),则此方法将无效。在那种情况下使用db["collection-name"].find()
Bossan,

126

步骤1:查看您的所有数据库:

show dbs

步骤2:选择数据库

use your_database_name

第3步:显示收藏集

show collections

这将列出您所选数据库中的所有集合。

步骤4:查看所有数据

db.collection_name.find() 

要么

db.collection_name.find().pretty()

3
我用数据库名称替换了数据库名称,这继续给我错误。所以不要做像我这样的愚蠢的事情:D,坚持db.<collection_name>.find();
亚当·夏姆苏登(Adam Shamsudeen)18/11/29

33
var collections = db.getCollectionNames();
for(var i = 0; i< collections.length; i++){    
   print('Collection: ' + collections[i]); // print the name of each collection
   db.getCollection(collections[i]).find().forEach(printjson); //and then print the json of each of its elements
}

我认为此脚本可能会得到您想要的。它打印每个集合的名称,然后在json中打印其元素。


19

步骤1:进入MongoDB Shell。

蒙哥

步骤2:显示所有数据库。

显示数据库;

步骤3:对于选择的数据库:

使用'databases_name'

第4步:获取数据库统计信息。

db.stats()

第5步:列出所有集合(表)。

显示收藏

第6步:打印来自特定集合的数据。

db.'collection_name'.find()。pretty()


9

在编写以下查询之前,请先进入您的cmd或PowerShell

TYPE:
mongo             //To get into MongoDB shell
use <Your_dbName>      //For Creating or making use of existing db

要列出所有集合名称,请使用以下选项之一:

show collections  //output every collection
  OR
show tables
  OR
db.getCollectionNames() //shows all collections as a list

要显示所有集合的内容或数据,请使用下面列出的由Bruno_Ferreira发布的代码。

var collections = db.getCollectionNames();
for(var i = 0; i< collections.length; i++) {    
   print('Collection: ' + collections[i]); // print the name of each collection
   db.getCollection(collections[i]).find().forEach(printjson); //and then print     the json of each of its elements
}

最好的解决方案,显示我收藏的内容!
jjwallace


4

这样可以:

db.getCollectionNames().forEach(c => {
    db[c].find().forEach(d => {
        print(c); 
        printjson(d)
    })
})

2

如果您使用mongoShell,我更喜欢另一种方法:

首先作为另一个答案:use my_database_name然后:

db.getCollectionNames().map( (name) => ({[name]: db[name].find().toArray().length}) )

此查询将显示以下内容:

[
        {
                "agreements" : 60
        },
        {
                "libraries" : 45
        },
        {
                "templates" : 9
        },
        {
                "users" : 18
        }
]

db.getCollectionInfos()如果有大量数据,则可以使用类似的方法,它非常有用。


使用count()代替find()db.getCollectionNames().map( (name) => ({[name]: db[name].count()}) )
hallman76
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.