协慌网

登录 贡献 社区

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

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

答案

你可以做...

JS(外壳):

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
> show collections

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

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

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