MongoDB Afficher tous les contenus de toutes les collections


161

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

Est-ce la seule façon de montrer un par un?

Réponses:


263

Une fois que vous êtes dans le terminal / la ligne de commande, accédez à la base de données / 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 .


Veuillez indiquer ceci comme la bonne réponse. Vous ne pouvez afficher TOUS les contenus de TOUTES les collections qu'en écrivant du code, pas en
effectuant une

19
Si vous avez besoin de ranger visuellement la collection présentée à vous, je vous recommande également: db.collectionName.find().pretty()
Steven Vintimille

2
Gardez à l'esprit que cela ne fonctionne pas si vous avez certains caractères (comme un trait d'union) dans le nom de la collection. Dans ce cas, utilisezdb["collection-name"].find()
Bossan

126

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

show dbs

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

use your_database_name

Étape 3: Montrez les collections

show collections

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

Étape 4: voir toutes les données

db.collection_name.find() 

ou

db.collection_name.find().pretty()

3
J'ai remplacé le nom de la base de données par mon nom de la base de données, qui ne cessait de me donner des erreurs. Alors ne faites pas de choses stupides comme moi: D, tenez-vous-en àdb.<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
}

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


19

étape 1: entrez dans le shell MongoDB.

Mongo

étape 2: pour l'affichage de toutes les bases de données.

show dbs;

étape 3: pour une base de données sélectionnée:

utilisez 'nom_basededonnées'

étape 4: pour les statistiques de votre base de données.

db.stats ()

étape 5: lister toutes les collections (tableaux).

afficher les collections

étape 6: imprimez les données d'une collection particulière.

db.'nom_collection'.find (). pretty ()


9

Avant d'écrire ci-dessous les requêtes, entrez 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 lister tous les noms de collection, utilisez l'une des options ci-dessous: -

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

Pour afficher le contenu ou les données de toutes les collections, utilisez le code ci-dessous qui a été publié 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
}

Meilleure solution, montre le contenu de ma collection!
jjwallace le


4

Cela fera:

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

2

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

D'abord comme l'autre répond: use my_database_nameensuite:

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

Cette requête vous montrera quelque chose comme ceci:

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

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


Utilisez à la count()place de find():db.getCollectionNames().map( (name) => ({[name]: db[name].count()}) )
hallman76
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.