是否可以在MongoDB中显示所有集合及其内容?
唯一可以逐一展示的方式吗?
答案 0 :(得分:190)
进入终端/命令行后,访问要使用的数据库/集合,如下所示:
show dbs
use <db name>
show collections
选择您的收藏并输入以下内容以查看该收藏集的所有内容:
db.collectionName.find()
答案 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
}
]
使用类似的方法,如果您有大量数据,这将非常有用。