tutorial - mongodb安装




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

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

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

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


对于使用WiredTiger存储引擎的MongoDB 3.0部署,如果从3.0之前版本的mongo shell或3.0兼容版本之前的驱动版本运行db.getCollectionNames() ,则db.getCollectionNames()将不返回数据,甚至如果有现有收藏。

有关更多详情,请参阅this


On> = 2.x,你可以做

db.listCollections()

在1.x上,你可以做

db.getCollectionNames()

mongoshell上的以下命令很常见

show databases
show collections

也,

show dbs
use mydb
db.getCollectionNames()

有时看到所有集合以及作为整个名称空间一部分的集合上的索引都很有用:

以下是你如何做到这一点:

 db.getCollectionNames().forEach(function(collection) {
indexes = db[collection].getIndexes();
print("Indexes for " + collection + ":");
printjson(indexes);
});

在3个命令和这个片段之间,你应该很好的报道!


从mongo shell使用以下命令: - 显示集合


你可以做...

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

如果你想显示来自mongodb shell(命令行)的所有集合,请使用shell帮助程序

show collections

显示当前数据库的所有集合。 如果你想从你的应用程序获得所有的收藏列表,那么你可以使用mongodb数据库方法

db.getCollectionNames()

欲了解更多信息mongodb外壳帮手,你可以看到http://docs.mongodb.org/manual/reference/mongo-shell/


尝试:

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

我认为最大的混乱之一是你可以用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')
            )
        }
    )
"

注意:作为一个在线人员,这非常有效。 (但在上看起来很糟糕。)

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


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

>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

> show collections

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





mongodb