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

Posted

技术标签:

【中文标题】MongoDB 显示所有集合中的所有内容【英文标题】:MongoDB Show all contents from all collections 【发布时间】:2014-09-19 01:49:56 【问题描述】:

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

只有一个一个显示的方法吗?

【问题讨论】:

【参考方案1】:

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

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

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

此查询将显示如下内容:

[
        
                "agreements" : 60
        ,
        
                "libraries" : 45
        ,
        
                "templates" : 9
        ,
        
                "users" : 19
        
]

您可以使用与 db.getCollectionInfos() 类似的方法,如果您有这么多数据并且也很有帮助,它会非常有用。

【讨论】:

使用count() 代替find(): db.getCollectionNames().map( (name) => ([name]: db[name].count()) )【参考方案2】:

这样就可以了:

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

【讨论】:

【参考方案3】:

这边:

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

【讨论】:

【参考方案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】:

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

show dbs
use <db name>
show collections

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

db.collectionName.find()

更多信息请点击MongoDB Quick Reference Guide。

【讨论】:

请将此作为正确答案。您只能通过编写代码来查看所有集合中的所有内容,而不是通过cli查询 如果你需要在视觉上整理呈现给你的收藏,我也推荐:db.collectionName.find().pretty() 请记住,如果您在集合名称中包含某些字符(如连字符),这将不起作用。在这种情况下使用db["collection-name"].find() 感谢@Bossan 的澄清。帮了大忙。【参考方案6】:
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 中打印其元素。

【讨论】:

以上是关于MongoDB 显示所有集合中的所有内容的主要内容,如果未能解决你的问题,请参考以下文章

mongodb总结:概念解析

MongoDB- 简单操作命令

Golang mongodb 从集合中删除所有项目 [mgo.v2]

认识MongoDB

mongo中一个文档的字段是list,怎么删除list中的数据

Mongo基础 索引的使用