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


当前回答

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

三种方法

显示表显示表格db.getCollectionNames()


要列出所有数据库:

show dbs

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

use databasename

要列出所有集合:

show collections

输出:

集合1集合2系统索引

(or)

show tables

输出:

集合1集合2系统索引

(or)

db.getCollectionNames()

输出:

[“collection1”,“collection2”,“system.indexs”]


输入或使用给定集合

use collectionname

其他回答

Try:

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

>显示表格

它给出了与卡梅伦的答案相同的结果。

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);
});

在这三个命令和这段代码之间,您应该很熟悉!

列出mongo shell中的所有集合:

db.getCollectionNames()显示表显示表格注意:集合将显示您所在的当前数据库目前

 1. show collections; // Display all collections
 2. show tables     // Display all collections
 3. db.getCollectionNames();   // Return array of collection. Example :[ "orders", "system.profile" ]

每个集合的详细信息:

db.runCommand( { listCollections: 1.0, authorizedCollections: true, nameOnly: true } )

对于具有所需访问权限(授予数据库listCollections操作的权限)的用户,该方法将列出数据库的所有集合的名称。对于没有所需访问权限的用户,该方法仅列出用户具有权限的集合。例如,如果用户在数据库中找到了特定集合,则该方法将仅返回该集合。

根据搜索字符串列出集合列表。

db.getCollectionNames().filter(function (CollectionName) { return /<Search String>/.test(CollectionName) })

示例:查找名称中包含“import”的所有集合

db.getCollectionNames().filter(function (CollectionName) { return /import/.test(CollectionName) })