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?

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 .


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()

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.


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 ()


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
}

Solusi terbaik, menunjukkan isi koleksi saya!
jjwallace


4

Ini akan melakukan:

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

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.


Gunakan count()sebagai ganti find():db.getCollectionNames().map( (name) => ({[name]: db[name].count()}) )
hallman76
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.