Как перечислить все коллекции в монго оболочки?
в оболочке MongoDB, как я могу перечислить все коллекции для текущей базы данных, которую я использую?
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 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
попробуй:
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'))})"
для перехода в базу данных. от:- используйте {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()
не вернет никаких данных, даже если они есть существующая коллекция.для получения дополнительной информации, пожалуйста, обратитесь к этой
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 в базе данных), метод перечисляет имена из всех коллекций для базы данных.
- для пользователей без необходимого доступа, метод перечисляет только коллекции, для которых пользователи имеют привилегии. Например, если пользователь должен найти на определенную коллекцию в базе данных, метод вернул бы только что коллекция.