MongoDB Tampilkan semua konten dari semua koleksi

161

Apakah mungkin untuk menampilkan semua koleksi dan isinya di MongoDB?

Apakah satu-satunya cara untuk menunjukkan satu per satu?

Reno
sumber

Jawaban:

263

Setelah Anda berada di terminal / baris perintah, akses database / koleksi yang ingin Anda gunakan sebagai berikut:

show dbs
use <db name>
show collections

pilih koleksi Anda dan ketikkan yang berikut untuk melihat semua konten koleksi itu:

db.collectionName.find()

Info lebih lanjut di sini di Panduan Referensi Cepat MongoDB .

hiu hiu
sumber
Silakan sebutkan ini sebagai jawaban yang benar. Anda hanya dapat melihat SEMUA konten dari SEMUA koleksi dengan menulis kode, tidak
meminta
19
Jika Anda perlu merapikan koleksi yang disajikan secara visual kepada Anda, saya juga merekomendasikan: db.collectionName.find().pretty()
Steven Ventimiglia
2
Ingatlah ini tidak berfungsi jika Anda memiliki karakter tertentu (seperti tanda hubung) dalam nama koleksi. Dalam hal ini gunakandb["collection-name"].find()
Bossan
126

Langkah 1: Lihat semua database Anda:

show dbs

Langkah 2: Pilih database

use your_database_name

Langkah 3: Tampilkan koleksi

show collections

Ini akan mendaftar semua koleksi di database yang Anda pilih.

Langkah 4: Lihat semua data

db.collection_name.find() 

atau

db.collection_name.find().pretty()
Debadatta
sumber
3
Saya mengganti nama db dengan nama db saya, yang terus memberi saya kesalahan. Jadi jangan lakukan hal-hal bodoh seperti saya: D, pertahankandb.<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
}

Saya pikir skrip ini mungkin mendapatkan apa yang Anda inginkan. Ini mencetak nama setiap koleksi dan kemudian mencetak elemen-elemennya di json.

Bruno_Ferreira
sumber
19

langkah 1: Masukkan ke dalam shell MongoDB.

mongo

langkah 2: untuk menampilkan semua database.

tampilkan dbs;

langkah 3: untuk database pilihan:

gunakan 'databases_name'

langkah 4: untuk statistik database Anda.

db.stats ()

langkah 5: daftar semua koleksi (tabel).

tampilkan koleksi

langkah 6: cetak data dari koleksi tertentu.

db.'collection_name'.find (). pretty ()

Vaibhav gole
sumber
9

Sebelum menulis pertanyaan di bawah ini, masuklah terlebih dahulu ke cmd atau PowerShell Anda

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

Untuk Daftar Semua Nama Koleksi gunakan salah satu dari opsi di bawah ini: -

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

Untuk menampilkan semua konten koleksi atau data, gunakan kode di bawah ini yang telah diposting oleh 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
}
Amit Kumar
sumber
Solusi terbaik, menunjukkan isi koleksi saya!
jjwallace
4

Cara ini:

db.collection_name.find().toArray().then(...function...)
Vladimir Sostaric
sumber
4

Ini akan melakukan:

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

Saya lebih suka pendekatan lain jika Anda menggunakan mongoshell:

Pertama sebagai jawaban yang lain: use my_database_namelalu:

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

Kueri ini akan menampilkan sesuatu seperti ini:

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

Anda dapat menggunakan pendekatan serupa dengan db.getCollectionInfos()itu sangat berguna jika Anda memiliki begitu banyak data.

Juan de Dios
sumber
Gunakan count()sebagai ganti find():db.getCollectionNames().map( (name) => ({[name]: db[name].count()}) )
hallman76