Как перечислить все коллекции в монго оболочки?


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

20 670

20 ответов:

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

JS (shell):

db.getCollectionNames()

узел.js:

db.listCollections()

не-JS (только оболочка):

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

> show tables

это дает тот же результат, что и ответ Кэмерона.

помимо вариантов, предложенных другими людьми:

show collections  //output every collection
show tables
db.getCollectionNames() //shows all collections as a list

есть и другой способ, который может быть очень удобно, если вы хотите знать, как была создана каждая из коллекций (например, это закрытая коллекция с определенным размером)

db.system.namespaces.find()

сначала вы должны использовать базу данных, чтобы показать все коллекции/таблицы внутри нее.

>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 tables или show collections

попробуй:

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

команда, используемая для отображения всей коллекции в базе данных 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/

Если вы хотите показать все коллекции из оболочки mongodb (командная строка), используйте Shell helper

show collections

что показать все коллекции для текущей базы данных. Если вы хотите получить весь список коллекции из вашего приложения, то вы можете использовать mongodb database method

db.getCollectionNames()

для получения дополнительной информации mongodb Shell helper вы можете увидеть http://docs.mongodb.org/manual/reference/mongo-shell/

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

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

db.listCollections()

на 1.X вы можете сделать

db.getCollectionNames()

для перехода в базу данных. от:- используйте {your_database_name} пример:

use friends

где друзья-имя вашей базы данных.

потом пишете:-

db.getCollectionNames()
show collections

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

показ коллекции

эта команда обычно работает на оболочке mongo, как только вы переключились на базу данных.

> show dbs        
anuradhfirst  0.000GB
local         0.000GB
> use anuradhfirst
switched to db anuradhfirst
> show collections
record
  • подключение к базе данных mongo с помощью mongo, это запустит соединение.
  • затем запустите show dbs команда, это покажет вам все выходящие / доступные базы данных.
  • выберите database вы want.in над ним находится anuradhfirst, затем запустить use anuradhfirst.это позволит переключиться на нужную базу данных.
  • затем запустите show collections команда, это покажет все collections внутри выбранной базы данных.

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

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

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

 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 в базе данных), метод перечисляет имена из всех коллекций для базы данных.
  • для пользователей без необходимого доступа, метод перечисляет только коллекции, для которых пользователи имеют привилегии. Например, если пользователь должен найти на определенную коллекцию в базе данных, метод вернул бы только что коллекция.

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

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

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