Ответы:
Ты можешь сделать...
JavaScript (оболочка):
db.getCollectionNames()
Node.js:
db.listCollections()
Не JavaScript (только оболочка):
show collections
Причина, по которой я называю это не-JavaScript, заключается в том, что:
$ 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
db.listCollections()
ответ, показанный здесь и отмеченный зеленым? В противном случае люди делают ту же ошибку, которую я делал бесчисленное количество раз, когда они приходят к этому ответу - и пытаются использовать, db.getCollectionNames
и ошибка возвращается db.collectionNames is not a function
.
db.getCollectionNames()
все еще правильный ответ для оболочки.
> show collections
выведет список всех коллекций в выбранной в данный момент БД, как указано в справке командной строки ( help
).
content 1145.586MB / 1506.855MB
например.
Как мне перечислить все коллекции для текущей базы данных, которую я использую?
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
весьма полезно для тех, кто приходит с реляционного фона БДМ.
use
это использовать базу данных, ничего общего с коллекциями
> 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
Для получения дополнительной информации посетите страницу Начало работы .
Если вы хотите показать все коллекции из оболочки MongoDB (командная строка), используйте помощник оболочки,
show collections
который показывает все коллекции для текущей базы данных. Если вы хотите получить все списки коллекций из вашего приложения, вы можете использовать метод базы данных MongoDB
db.getCollectionNames()
Дополнительную информацию о помощнике оболочки MongoDB вы можете найти в mongo
Кратком справочнике по оболочке .
Следующие команды на 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);
});
Между тремя командами и этим фрагментом вы должны быть хорошо прикрыты!
Я думаю, что одно из самых больших заблуждений - это разница между тем, что вы можете сделать 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')
)
}
)
"
Примечание: это действительно хорошо работает как однострочник. (Но это выглядит ужасно при переполнении стека.)
mongo --eval "db.getMongo().getDBNames().forEach(function(v, i){print(v+'\n\t'+db.getSiblingDB(v).getCollectionNames().join('\n\t'))})"
На> = 2.x вы можете сделать
db.listCollections()
На 1.х можно сделать
db.getCollectionNames()
db.getCollectionNames()
я получаю, [ "users" ]
потому что у меня есть коллекция пользователей. Если я попробую, db.listCollections()
то это приведет к[thread1] TypeError: db.listCollections is not a function : @(shell):1:1
Список всех коллекций из mongo
оболочки:
- db.getCollectionNames ()
- показать коллекции
- показать таблицы
Примечание: Коллекции будут показывать из текущей базы данных , где вы находитесь в данный момент
Для переключения на базу данных.
По:
используйте пример {your_database_name} :
use friends
где friends
имя вашей базы данных.
Затем написать:
db.getCollectionNames()
show collections
Это даст вам название коллекции.
> show dbs
anuradhfirst 0.000GB
local 0.000GB
> use anuradhfirst
switched to db anuradhfirst
> show collections
record
mongo
. Это запустит соединение.show dbs
команду. Это покажет вам все существующие / доступные базы данных.database
нужный. В приведенном выше это anuradhfirst
. Тогда беги use anuradhfirst
. Это переключится на базу данных, которую вы хотите.show collections
команду. Это покажет все collections
внутри выбранной вами базы данных.показать коллекции
Эта команда обычно работает в оболочке MongoDB после переключения на базу данных.
Для развертываний MongoDB 3.0 с использованием механизма хранения WiredTiger, если вы используете
db.getCollectionNames()
версию оболочки mongo до 3.0 или версию драйвера до версии, совместимой с 3.0,db.getCollectionNames()
не вернет никаких данных, даже если существуют существующие коллекции.
Для получения более подробной информации, пожалуйста, обратитесь к этому .
show collections
или
show tables
или
db.getCollectionNames();
Я использую listCollections
(поддерживает MongoDB 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)})
Я чувствую, что это обеспечивает большую гибкость.
Подробнее: списокКоллекции
1. show collections; // Display all collections
2. show tables // Display all collections
3. db.getCollectionNames(); // Return array of collection. Example :[ "orders", "system.profile" ]
Подробная информация для каждой коллекции:
db.runCommand( { listCollections: 1.0, authorizedCollections: true, nameOnly: true } )
Вывести список коллекций на основе строки поиска.
db.getCollectionNames().filter(function (CollectionName) { return /<Search String>/.test(CollectionName) })
Пример: Найти всю коллекцию с именем "import"
db.getCollectionNames().filter(function (CollectionName) { return /import/.test(CollectionName) })
Используйте следующую команду из mongo
оболочки:
show collections