В оболочке MongoDB, как мне отобразить все коллекции для текущей базы данных, которые я использую?
Как перечислить все коллекции в оболочке mongo?
Ответ 1
Вы можете сделать...
JS (оболочка):
db.getCollectionNames()
node.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
Ответ 2
> show collections
отобразит все коллекции в текущей выбранной БД, как указано в справке по командной строке (help
).
Ответ 3
как мне отобразить все коллекции для текущей базы данных, которые я использую?
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
Ответ 4
> show tables
Он дает тот же результат, что и ответ Камерона.
Ответ 5
Помимо вариантов, предложенных другими людьми:
show collections //output every collection
show tables
db.getCollectionNames() //shows all collections as a list
Существует и другой способ, который может быть очень полезен, если вы хотите знать, как создавалась каждая из коллекций (например, это ограниченная коллекция с определенным размером)
db.system.namespaces.find()
Ответ 6
Сначала вам нужно использовать базу данных, чтобы показать все коллекции/таблицы внутри нее.
>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
Ответ 7
вы можете использовать show tables
или show collections
Ответ 8
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
Ответ 9
Команда, используемая для отображения всей коллекции в базе данных 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/
Ответ 10
Если вы хотите показать все коллекции из оболочки mongodb (командной строки), используйте shell helper
show collections
который отображает все коллекции текущей базы данных. Если вы хотите получить весь список коллекций из своего приложения, вы можете использовать метод базы данных mongodb
db.getCollectionNames()
Для получения дополнительной информации о помощнике оболочки mongodb вы можете видеть http://docs.mongodb.org/manual/reference/mongo-shell/
Ответ 11
Следующие команды на 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);
});
Между тремя командами и этим фрагментом вы должны быть хорошо охвачены!
Ответ 12
Я использую:
> show collections
но другой вариант использует метод getCollectionNames(), который возвращает массив, содержащий все коллекции в существующей базе данных.
db.getCollectionNames()
Ответ 13
Я думаю, что одним из самых больших недоразумений является разница между тем, что вы можете сделать с 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'))})"
Ответ 14
Вкл >= 2.x, вы можете сделать
db.listCollections()
В 1.x вы можете сделать
db.getCollectionNames()
Ответ 15
Для переключения в базу данных. от:- используйте {your_database_name} пример:
use friends
где друзья - это имя вашей базы данных.
тогда напишите: -
db.getCollectionNames()
show collections
это даст вам имя коллекций.
Ответ 16
показать коллекции
эта команда обычно работает на оболочке mongo после того, как вы переключились на базу данных.
Ответ 17
Список всех коллекций из оболочки Монго:
- db.getCollectionNames()
- показать коллекции
- показать таблицы
Примечание: Коллекции будут показывать из текущей базы данных, где вы находитесь в данный момент
Ответ 18
> 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
.this переключится на нужную базу данных. - затем запустите команду
show collections
, это отобразит всеcollections
внутри выбранной вами базы данных.
Ответ 19
Использование - показать коллекции Это работает на оболочке манго.
Ответ 20
Для развертываний MongoDB 3.0 с использованием механизма хранения WiredTiger, если вы запускаете
db.getCollectionNames()
из версии оболочки монго до версии 3.0 или версии драйвера до версии 3.0, совместимой с версией,db.getCollectionNames()
не вернет никаких данных, даже если есть существующих коллекций.
Для получения дополнительной информации см. this
Ответ 21
используйте следующую команду из оболочки Монго: - показать коллекции
Ответ 22
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 для базы данных), метод перечисляет имена всех коллекций для базы данных.
- Для пользователей без требуемого доступа метод перечисляет только коллекции, для которых у пользователей есть привилегии. Например, если пользователь найдет определенную коллекцию в базе данных, метод вернет только эту коллекцию.
Ответ 23
Я использую 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/