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

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

20 ответов


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

JS (shell):

db.getCollectionNames()

узел.js:

db.listCollections()

non-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 

перед запуском команды показать коллекции необходимо выбрать базу данных

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

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 вы хотите.в вышине это 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()
  • показ коллекции
  • показать таблицы

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