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

时间:2014-07-27 21:07:14

标签: mongodb collections find

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

唯一可以逐一展示的方式吗?

8 个答案:

答案 0 :(得分:190)

进入终端/命令行后,访问要使用的数据库/集合,如下所示:

show dbs
use <db name>
show collections

选择您的收藏并输入以下内容以查看该收藏集的所有内容:

db.collectionName.find()

MongoDB Quick Reference Guide上的更多信息。

答案 1 :(得分:77)

第1步:查看所有数据库:

{% if is_granted('view', post) %}
    post
{% else %}
    Permission denied
{% endif %}

第2步:选择数据库

show dbs

第3步:显示馆藏

use your_database_name

这将列出所选数据库中的所有馆藏。

第4步:查看所有数据

show collections

db.collection_name.find() 

答案 2 :(得分:27)

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中打印它的元素。

答案 3 :(得分:7)

第1步:进入MongoDB shell。

  

mongo

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

  

显示数据库;

第3步:选择数据库:

  

使用“数据库名称”

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

  

db.stats()

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

  

显示收藏

步骤6:打印特定集合中的数据。

  

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

答案 4 :(得分:4)

在编写下面的查询之前,请先进入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
}

答案 5 :(得分:1)

这种方式:

db.collection_name.find().toArray().then(...function...)

答案 6 :(得分:0)

这可以做到:

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

答案 7 :(得分:0)

如果您使用的是// Binary to SID function bin_to_str_sid($binary_sid) { $sid = NULL; /* 64bt PHP */ if(strlen(decbin(~0)) == 64) { // Get revision, indentifier, authority $parts = unpack('Crev/x/nidhigh/Nidlow', $binary_sid); // Set revision, indentifier, authority $sid = sprintf('S-%u-%d', $parts['rev'], ($parts['idhigh']<<32) + $parts['idlow']); // Translate domain $parts = unpack('x8/V*', $binary_sid); // Append if parts exists if ($parts) $sid .= '-'; // Join all $sid.= join('-', $parts); } /* 32bit PHP */ else { $sid = 'S-'; $sidinhex = str_split(bin2hex($binary_sid), 2); // Byte 0 = Revision Level $sid = $sid.hexdec($sidinhex[0]).'-'; // Byte 1-7 = 48 Bit Authority $sid = $sid.hexdec($sidinhex[6].$sidinhex[5].$sidinhex[4].$sidinhex[3].$sidinhex[2].$sidinhex[1]); // Byte 8 count of sub authorities - Get number of sub-authorities $subauths = hexdec($sidinhex[7]); //Loop through Sub Authorities for($i = 0; $i < $subauths; $i++) { $start = 8 + (4 * $i); // X amount of 32Bit (4 Byte) Sub Authorities $sid = $sid.'-'.hexdec($sidinhex[$start+3].$sidinhex[$start+2].$sidinhex[$start+1].$sidinhex[$start]); } } return $sid; } shell,我更喜欢另一种方法:

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

use my_database_name

此查询将向您显示以下内容:

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

您可以对[ { "agreements" : 60 }, { "libraries" : 45 }, { "templates" : 9 }, { "users" : 18 } ] 使用类似的方法,如果您有大量数据,这将非常有用。