MongoDB Показать все содержимое всех коллекций

161

Можно ли показать все коллекции и их содержимое в MongoDB?

Это единственный способ показать один за другим?

Reno
источник

Ответы:

263

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

show dbs
use <db name>
show collections

выберите свою коллекцию и введите следующее, чтобы увидеть все содержимое этой коллекции:

db.collectionName.find()

Более подробную информацию можно найти в кратком справочном руководстве MongoDB .

sharkySharks
источник
Пожалуйста, укажите это как правильный ответ. Вы можете просматривать ВСЕ материалы из ВСЕХ коллекций, написав код, а не
отправляя
19
Если вам нужно визуально привести в порядок коллекцию, представленную вам, я также рекомендую: 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()
Debadatta
источник
3
Я заменил имя базы данных своим именем базы данных, что продолжало давать мне ошибки. Так что не делай глупостей вроде меня: D, придерживайсяdb.<collection_name>.find();
Адам Шамсудин
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.

Bruno_Ferreira
источник
19

Шаг 1: Войдите в оболочку MongoDB.

монго

шаг 2: для отображения всех баз данных.

показать дбс;

шаг 3: для выбранной базы данных:

используйте 'database_name'

Шаг 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.collection_name.find().toArray().then(...function...)
Владимир Состарич
источник
4

Это будет делать:

db.getCollectionNames().forEach(c => {
    db[c].find().forEach(d => {
        print(c); 
        printjson(d)
    })
})
yunzen
источник
2

Я предпочитаю другой подход, если вы используете mongoоболочку:

Сначала как другой отвечает: 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