Как перечислить все коллекции в оболочке Монго? - PullRequest
708 голосов
/ 15 января 2012

Как в оболочке MongoDB вывести список всех коллекций для текущей базы данных, которую я использую?

Ответы [ 21 ]

9 голосов
/ 24 января 2016

Следующие команды на 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 командами и этим фрагментом вы должны быть хорошо прикрыты!

6 голосов
/ 04 января 2017

Я думаю, что одно из самых больших заблуждений - это разница между тем, что вы можете сделать с mongo (или интерактивной / гибридной оболочкой), против mongo --eval (или чисто оболочкой javascript).Я держу под рукой эти полезные документы:

Вот пример написания сценариев того, что в противном случае вы могли бы сделать с помощью команд 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'))})"
2 голосов
/ 12 января 2016

On> = 2.x, вы можете сделать

db.listCollections()

На 1.x вы можете сделать

db.getCollectionNames()
2 голосов
/ 20 июля 2017

Для переключения на базу данных.by: - ​​ use {your_database_name} пример:

use friends

где friends - это имя вашей базы данных.

затем напишите: -

db.getCollectionNames()
show collections

это даст вам название коллекции.

1 голос
/ 29 июля 2018

Список всех коллекций из оболочки Монго:

  • db.getCollectionNames ()
  • Показать коллекции
  • Показать таблицы

Примечание: коллекции будут отображаться из текущей базы данных, в которой вы находитесь в настоящее время

0 голосов
/ 19 ноября 2018

Я использую 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/

0 голосов
/ 09 августа 2018
 1. show collections; //Display all collection
 2. show tables     //Display all collection
 3. db.getCollectionNames();   // Retuen array of collection Example :[ "orders", "system.profile" ]

Подробная информация о каждой коллекции

db.runCommand( { listCollections: 1.0, authorizedCollections: true, nameOnly: true } )
  • Для пользователей с требуемым доступом (привилегии, которые предоставляют действие listCollections для базы данных), метод выводит имена всех коллекций длябаза данных.
  • Для пользователей без требуемого доступа в этом методе перечислены только коллекции, для которых у пользователей есть привилегии.Например, если пользователь найдет определенную коллекцию в базе данных, метод вернет только эту коллекцию.
0 голосов
/ 05 апреля 2018

используйте следующую команду из оболочки монго: - показать коллекции

0 голосов
/ 21 марта 2017

Для развертываний MongoDB 3.0 с использованием механизма хранения WiredTiger, если вы запускаете db.getCollectionNames() из версии оболочки Монго до версии 3.0 или версии драйвера до версии, совместимой с версией 3.0, db.getCollectionNames() не вернет никаких данных, даже если есть существующие коллекции.

Для получения более подробной информации, пожалуйста, обратитесь к this

0 голосов
/ 22 августа 2016
> 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 в выбранной вами базе данных.
...