it-swarm.com.de

MongoDB Alle Inhalte aus allen Sammlungen anzeigen

Ist es möglich, alle Sammlungen und deren Inhalte in MongoDB anzuzeigen?

Ist die einzige Möglichkeit, eins nach dem anderen zu zeigen?

122
Reno

Wenn Sie sich in der Terminal-/Befehlszeile befinden, greifen Sie wie folgt auf die Datenbank/Sammlung zu, die Sie verwenden möchten:

show dbs
use <db name>
show collections

wählen Sie Ihre Sammlung aus und geben Sie Folgendes ein, um den gesamten Inhalt dieser Sammlung anzuzeigen:

db.collectionName.find()

Weitere Informationen finden Sie hier im MongoDB Quick Reference Guide .

208
sharkySharks

Schritt 1: Alle Datenbanken anzeigen:

show dbs

Schritt 2: Wählen Sie die Datenbank aus

use your_database_name

Schritt 3: Zeigen Sie die Sammlungen

show collections

Dadurch werden alle Sammlungen in Ihrer ausgewählten Datenbank aufgelistet.

Schritt 4: Alle Daten anzeigen

db.collection_name.find() 

oder

db.collection_name.find().pretty()
92
Debadatta
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
}

Ich denke, dieses Skript könnte das bekommen, was Sie wollen. Es druckt den Namen jeder Sammlung und druckt dann seine Elemente in json.

30
Bruno_Ferreira

Bevor Sie die folgenden Abfragen schreiben, rufen Sie zunächst Ihre cmd oder PowerShell auf

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

Um alle Sammlungsnamen aufzulisten, verwenden Sie eine der folgenden Optionen: -

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

Um den Inhalt oder die Daten aller Sammlungen anzuzeigen, verwenden Sie den unten aufgeführten Code, der von Bruno_Ferreira gepostet wurde.

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
}
5
Amit Kumar

Das wird es tun:

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

Diesen Weg:

db.collection_name.find().toArray().then(...function...)
2

Ich bevorzuge einen anderen Ansatz, wenn Sie mongo Shell verwenden:

Als erstes antwortet der andere: use my_database_name Dann:

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

Diese Abfrage zeigt Ihnen etwa Folgendes:

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

Sie können einen ähnlichen Ansatz mit db.getCollectionInfos() verwenden. Dies ist sehr nützlich, wenn Sie über so viele Daten verfügen.

0
Juan de Dios