Tüm koleksiyonlardaki tüm içeriği göster


161

Tüm koleksiyonları ve içeriğini MongoDB'de göstermek mümkün mü?

Tek tek göstermenin tek yolu mu?

Yanıtlar:


263

Terminal / komut satırına girdikten sonra, kullanmak istediğiniz veritabanına / koleksiyona aşağıdaki gibi erişin:

show dbs
use <db name>
show collections

koleksiyonunuzu seçin ve bu koleksiyonun tüm içeriğini görmek için aşağıdakileri yazın:

db.collectionName.find()

Daha fazla bilgi için MongoDB Hızlı Başvuru Kılavuzu'na bakın .


Lütfen bunu doğru cevap olarak belirtin. TÜM içeriklerden TÜM içeriği yalnızca kod yazarak görüntüleyebilirsiniz, cli
imbatman ile

19
Size sunulan koleksiyonu görsel olarak toparlamanız gerekiyorsa, ben de tavsiye ederim: db.collectionName.find().pretty()
Steven Ventimiglia

2
Koleksiyon adında belirli karakterler (kısa çizgi gibi) varsa bunun işe yaramayacağını unutmayın. Bu durumdadb["collection-name"].find()
Bossan

126

1. Adım: Tüm veritabanlarınızı görün:

show dbs

2. Adım: Veritabanını seçin

use your_database_name

3. Adım: Koleksiyonları gösterin

show collections

Bu, seçtiğiniz veritabanındaki tüm koleksiyonları listeler.

4. Adım: Tüm verileri görün

db.collection_name.find() 

veya

db.collection_name.find().pretty()

3
Ben hata vermeye devam etti benim db adı ile db adı değiştirdi. Yani benim gibi aptalca şeyler yapma: D, stick todb.<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
}

Bence bu senaryo istediğini alabilir. Her koleksiyonun adını yazdırır ve ardından öğelerini json olarak yazdırır.


19

Adım 1: MongoDB kabuğuna girin.

Mongo

Adım 2: tüm veritabanlarını görüntülemek için.

dbs'yi göster;

3. adım: belirli bir veritabanı için:

'veritabanları_adı' kullanın

Adım 4: Veritabanınızın istatistikleri için.

db.stats ()

5. adım: tüm koleksiyonları listeleme (tablolar).

koleksiyonları göster

6. adım: belirli bir koleksiyondaki verileri yazdırın.

db.'collection_name'.find (). Oldukça ()


9

Aşağıdaki sorguları yazmadan önce cmd veya PowerShell'inize girin

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

Tüm Koleksiyon Adlarını Listelemek için aşağıdaki seçeneklerden birini kullanın: -

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

Tüm koleksiyonların içeriğini veya verilerini göstermek için Bruno_Ferreira tarafından gönderilen aşağıda listelenen kodu kullanın.

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
}

En iyi çözüm, koleksiyonumun içeriğini gösteriyor!
jjwallace


4

Bu yapacaktır:

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

2

mongoKabuk kullanıyorsanız başka bir yaklaşımı tercih ederim :

İlk olarak diğeri cevap verir use my_database_name:

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

Bu sorgu size şöyle bir şey gösterecektir:

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

db.getCollectionInfos()Çok fazla veriye sahipseniz benzer bir yaklaşım kullanabilirsiniz .


count()Bunun yerine kullanın find():db.getCollectionNames().map( (name) => ({[name]: db[name].count()}) )
hallman76
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.