MongoDB Показати весь вміст із усіх колекцій


161

Чи можливо показати всі колекції та його вміст у MongoDB?

Є єдиний спосіб показати один за одним?

Відповіді:


261

Після того, як ви перебуваєте в терміналі / командному рядку, отримайте доступ до бази даних / колекції, яку ви хочете використовувати, наступним чином:

show dbs
use <db name>
show collections

виберіть свою колекцію та введіть наступне, щоб побачити весь вміст цієї колекції:

db.collectionName.find()

Докладнішу інформацію можна знайти тут у короткому посібнику MongoDB .


Будь ласка, зазначте це як правильну відповідь. Ви можете переглянути ВСІ вміст із ВСІХ колекцій лише написавши код, не
запитуючи

18
Якщо вам потрібно візуально оформити подаровану вам колекцію, я також рекомендую: db.collectionName.find().pretty()
Стівен Вентімілья

2
Майте на увазі, що це не працює, якщо у назві колекції є певні символи (наприклад, дефіс). У цьому випадку використанняdb["collection-name"].find()
Боссан

126

Крок 1. Перегляньте всі ваші бази даних:

show dbs

Крок 2: Виберіть базу даних

use your_database_name

Крок 3: Показати колекції

show collections

Тут буде перераховано всі колекції у вибраній базі даних.

Крок 4: Перегляньте всі дані

db.collection_name.find() 

або

db.collection_name.find().pretty()

3
Я замінив ім'я db на моє ім'я db, яке продовжувало робити мені помилки. Тож не робіть таких дурників, як я: D, дотримуйтесьdb.<collection_name>.find();
adam shamsudeen

33
var collections = db.getCollectionNames();
for(var i = 0; i< collections.length; i++){    
   print('Collection: ' + collections[i]); // print the name of each collection
   db.getCollection(collections[i]).find().forEach(printjson); //and then print the json of each of its elements
}

Я думаю, що цей сценарій може отримати те, що ви хочете. Він друкує назву кожної колекції, а потім друкує її елементи в json.


19

крок 1: Введіть оболонку MongoDB.

монго

крок 2: для відображення всіх баз даних.

показати dbs;

крок 3: для обраної бази даних:

використовувати "ім'я баз даних"

крок 4: для статистики вашої бази даних.

db.stats ()

крок 5: перерахування всіх колекцій (таблиць).

показати колекції

крок 6: друк даних з певної колекції.

db.'collection_name'.find (). досить ()


9

Перш ніж писати нижче запити, спочатку перейдіть у свій cmd або PowerShell

TYPE:
mongo             //To get into MongoDB shell
use <Your_dbName>      //For Creating or making use of existing db

Щоб перерахувати всі назви колекцій, використовуйте будь-яке з наведених нижче варіантів: -

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

Щоб показати весь вміст або дані колекцій, використовуйте наведений нижче код, опублікований Bruno_Ferreira.

var collections = db.getCollectionNames();
for(var i = 0; i< collections.length; i++) {    
   print('Collection: ' + collections[i]); // print the name of each collection
   db.getCollection(collections[i]).find().forEach(printjson); //and then print     the json of each of its elements
}

Найкраще рішення, показує вміст моєї колекції!
jjwallace


4

Це зробить:

db.getCollectionNames().forEach(c => {
    db[c].find().forEach(d => {
        print(c); 
        printjson(d)
    })
})

2

Я вважаю за краще інший підхід, якщо ви використовуєте mongoshell:

Спочатку як відповість інший: use my_database_nameпотім:

db.getCollectionNames().map( (name) => ({[name]: db[name].find().toArray().length}) )

Цей запит покаже вам щось подібне:

[
        {
                "agreements" : 60
        },
        {
                "libraries" : 45
        },
        {
                "templates" : 9
        },
        {
                "users" : 18
        }
]

Ви можете використовувати подібний підхід з db.getCollectionInfos()ним, досить корисно, якщо у вас є стільки даних.


Використовуйте count()замість find():db.getCollectionNames().map( (name) => ({[name]: db[name].count()}) )
hallman76
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.