MongoDB Alle Inhalte aus allen Sammlungen anzeigen


161

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

Ist der einzige Weg, eins nach dem anderen zu zeigen?

Antworten:


261

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 in der MongoDB-Kurzanleitung .


Bitte geben Sie dies als die richtige Antwort an. Sie können ALLE Inhalte aus ALLEN Sammlungen nur anzeigen, indem Sie Code schreiben und nicht über cli
— imbatman

18
Wenn Sie die Ihnen präsentierte Sammlung visuell aufräumen müssen, empfehle ich außerdem: db.collectionName.find().pretty()
— Steven Ventimiglia

2
Beachten Sie, dass dies nicht funktioniert, wenn der Name der Sammlung bestimmte Zeichen (z. B. einen Bindestrich) enthält. In diesem Fall verwendendb["collection-name"].find()
— Bossan

126

Schritt 1: Alle Ihre Datenbanken anzeigen:

show dbs

Schritt 2: Wählen Sie die Datenbank aus

use your_database_name

Schritt 3: Zeigen Sie die Sammlungen an

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

3
Ich habe den Datenbanknamen durch meinen Datenbanknamen ersetzt, was mir immer wieder Fehler gab. Also mach keine dummen Dinge wie mich: D, db.<collection_name>.find();
— bleib

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
}

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


19

Schritt 1: Betreten Sie die MongoDB-Shell.

Mongo

Schritt 2: Für die Anzeige aller Datenbanken.

zeige dbs;

Schritt 3: für eine ausgewählte Datenbank:

benutze 'database_name'

Schritt 4: für Statistiken Ihrer Datenbank.

db.stats ()

Schritt 5: Auflisten aller Sammlungen (Tabellen).

Sammlungen zeigen

Schritt 6: Drucken Sie die Daten aus einer bestimmten Sammlung.

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


9

Bevor Sie die folgenden Abfragen schreiben, rufen Sie zuerst 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 alle Inhalte oder Daten aller Sammlungen anzuzeigen, verwenden Sie den unten aufgeführten Code, der von Bruno_Ferreira veröffentlicht 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
}

Beste Lösung, zeigt den Inhalt meiner Sammlung!
— JJwallace


4

Das wird es tun:

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

2

Ich bevorzuge einen anderen Ansatz, wenn Sie mongoShell verwenden:

Zuerst wie der andere antwortet: use my_database_namedann:

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

Diese Abfrage zeigt Ihnen ungefähr Folgendes:

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

Sie können einen ähnlichen Ansatz verwenden db.getCollectionInfos(), der ziemlich nützlich ist, wenn Sie so viele Daten haben.


Verwenden Sie count()anstelle von find():db.getCollectionNames().map( (name) => ({[name]: db[name].count()}) )
— hallman76
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.