如何列出mongo shell中的所有集合?

时间:2012-01-14 22:52:03

标签: mongodb nosql mongo-shell

在MongoDB shell中,如何列出我正在使用的当前数据库的所有集合?

21 个答案:

答案 0 :(得分:1073)

你可以......

JS(shell):

db.getCollectionNames()

的node.js:

db.listCollections()

非JS(仅限shell):

show collections

我称之为非JS的原因是:

$ mongo prodmongo/app --eval "show collections"
MongoDB shell version: 3.2.10
connecting to: prodmongo/app
2016-10-26T19:34:34.886-0400 E QUERY    [thread1] SyntaxError: missing ; before statement @(shell eval):1:5

$ mongo prodmongo/app --eval "db.getCollectionNames()"
MongoDB shell version: 3.2.10
connecting to: prodmongo/app
[
    "Profiles",
    "Unit_Info"
]

如果你真的想要甜蜜,甜蜜的show collections输出,你可以:

$ mongo prodmongo/app --eval "db.getCollectionNames().join('\n')"
MongoDB shell version: 3.2.10
connecting to: prodmongo/app
Profiles
Unit_Info

答案 1 :(得分:404)

> show collections

将列出当前所选数据库中的所有集合,如命令行帮助(help)中所述。

答案 2 :(得分:250)

  

如何列出我当前使用的数据库的所有集合?

3方法

  • show collections
  • show tables
  • db.getCollectionNames()

列出所有数据库

show dbs

输入或使用给定的数据库:

use databasename

列出所有集合

show collections

输出:

collection1  
collection2  
system.indexes

(或)

show tables

输出:

collection1  
collection2  
system.indexes

(或)

db.getCollectionNames()

输出:

[ "collection1", "collection2", "system.indexes" ]

输入或使用给定的集合

use collectionname

答案 3 :(得分:51)

> show tables

它的结果与Cameron的答案相同。

答案 4 :(得分:20)

首先,您需要使用数据库来显示其中的所有集合/表。

>show dbs
users 0.56787GB
test (empty)
>db.test.help() // this will give you all the function which can be used with this db
>use users
>show tables //will show all the collection in the db

答案 5 :(得分:14)

您可以使用show tablesshow collections

答案 6 :(得分:13)

尝试:

help // To show all help methods
show dbs  // To show all dbs
use dbname  // To select your db
show collections // To show all collections in selected db

答案 7 :(得分:11)

用于显示mongoDb数据库中所有集合的命令是

show collections 

在运行show collections命令之前,您必须选择数据库

use mydb //mydb is the name of the database being selected

要查看所有数据库,您可以使用命令

show dbs // shows all the database names present 

有关详细信息,请访问此链接:http://docs.mongodb.org/manual/tutorial/getting-started/

答案 8 :(得分:10)

如果要显示mongodb shell(命令行)中的所有集合,请使用shell helper

show collections

显示当前数据库的所有集合。 如果要从应用程序中获取所有集合列表,则可以使用mongodb数据库方法

db.getCollectionNames()

有关mongodb shell帮助器的更多信息,您可以看到 http://docs.mongodb.org/manual/reference/mongo-shell/

答案 9 :(得分:9)

mongoshell上的以下命令很常见

the trust

此外,

show databases
show collections

有时查看集合中的所有集合以及集合中的索引是有用的:

在这里,您将如何做到这一点:

show dbs
use mydb
db.getCollectionNames()

在3个命令和这个片段之间你应该得到很好的覆盖!

答案 10 :(得分:6)

我认为最大的混淆之一是你可以用mongo(或交互式/混合shell)与mongo --eval(或纯javascript shell)之间的区别。我把这些有用的文件放在手边:

以下是使用show命令编写脚本的示例:

# List all databases and the collections in them

mongo --eval "
    db.getMongo().getDBNames().forEach(
        function(v, i){
            print(
                v + '\n\t' +
                db.getSiblingDB(v).getCollectionNames().join('\n\t')
            )
        }
    )
"

注意:作为oneliner,它非常有效。 (但在StackOverflow上看起来很糟糕。)

mongo --eval "db.getMongo().getDBNames().forEach(function(v, i){print(v+'\n\t'+db.getSiblingDB(v).getCollectionNames().join('\n\t'))})"

答案 11 :(得分:2)

在> = 2.x上,您可以

db.listCollections()

在1.x上你可以做到

db.getCollectionNames()

答案 12 :(得分:2)

用于切换到数据库。 通过:- 使用{your_database_name} 示例:

use friends

其中friends是数据库的名称。

然后写: -

db.getCollectionNames()
show collections

这将为您提供集合的名称。

答案 13 :(得分:1)

列出mongo shell中的所有集合:

  
      
  • db.getCollectionNames()
  •   
  • 显示收藏夹
  •   
  • 显示表格
  •   
     

注意:集合将从当前所在的数据库中显示出来   当前

答案 14 :(得分:0)

> show dbs        
anuradhfirst  0.000GB
local         0.000GB
> use anuradhfirst
switched to db anuradhfirst
> show collections
record
  • 使用mongo与mongo数据库连接,这将启动连接。
  • 然后运行show dbs命令,这将显示所有退出/可用的数据库。
  • 然后选择您想要的database。在anuradhfirst之上,然后运行use anuradhfirst。这将切换到您想要的数据库。
  • 然后运行show collections命令,这将显示所选数据库中的所有collections

答案 15 :(得分:0)

  

展示收藏品

一旦切换到数据库,此命令通常适用于mongo shell。

答案 16 :(得分:0)

  

对于使用WiredTiger存储引擎的MongoDB 3.0部署,如果   您从mongo shell的版本运行db.getCollectionNames()   3.0版之前或3.0兼容版之前的驱动程序版本,   db.getCollectionNames()将不会返回任何数据,即使有数据也是如此   现有的藏品。

有关详细信息,请参阅this

答案 17 :(得分:0)

0

每个收藏的详细信息

 1. show collections; //Display all collection
 2. show tables     //Display all collection
 3. db.getCollectionNames();   // Retuen array of collection Example :[ "orders", "system.profile" ]
  • 对于具有所需访问权限的用户(授予权限的用户 对数据库执行listCollections操作),该方法列出名称 数据库的所有集合中。
  • 对于没有所需访问权限的用户,该方法仅列出 用户具有特权的集合。例如,如果 用户在数据库中的特定集合上找到了该方法 将只返回该集合。

答案 18 :(得分:0)

为此,我使用listCollections(支持mongo 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)})

我觉得这提供了更大的灵活性。

了解更多:https://docs.mongodb.com/manual/reference/command/listCollections/

答案 19 :(得分:0)

show collections

show tables

db.getCollectionNames();

答案 20 :(得分:-1)

使用来自mongo shell的以下命令: - 展示收藏品