web-dev-qa-db-fra.com

MongoDB Afficher tout le contenu de toutes les collections

Est-il possible d'afficher toutes les collections et leur contenu dans MongoDB?

Est-ce le seul moyen de montrer un par un?

122
Reno

Une fois que vous êtes dans la ligne de commande/terminal, accédez à la base de données/à la collection que vous souhaitez utiliser comme suit:

show dbs
use <db name>
show collections

choisissez votre collection et tapez ce qui suit pour voir tout le contenu de cette collection:

db.collectionName.find()

Plus d'informations ici sur le Guide de référence rapide MongoDB .

208
sharkySharks

Étape 1: Voir toutes vos bases de données:

show dbs

Étape 2: Sélectionnez la base de données

use your_database_name

Étape 3: Afficher les collections

show collections

Cela listera toutes les collections de la base de données sélectionnée.

Étape 4: Voir toutes les données

db.collection_name.find() 

ou

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
}

Je pense que ce script pourrait obtenir ce que vous voulez. Il imprime le nom de chaque collection puis imprime ses éléments en json.

30
Bruno_Ferreira

Avant d'écrire ci-dessous, les requêtes entrent d'abord dans votre cmd ou PowerShell

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

Pour répertorier tous les noms de collection, utilisez l’une des options suivantes: -

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

Pour afficher tout le contenu des collections ou des données, utilisez le code ci-dessous qui avait été posté par 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
}
5
Amit Kumar

Cela fera:

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

Par ici:

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

Je préfère une autre approche si vous utilisez mongo Shell:

D'abord comme l'autre répond: use my_database_name puis:

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

Cette requête va vous montrer quelque chose comme ça:

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

Vous pouvez utiliser une approche similaire avec db.getCollectionInfos() c'est très utile si vous avez beaucoup de données.

0
Juan de Dios