Est-il possible d'afficher toutes les collections et leur contenu dans MongoDB?
Est-ce le seul moyen de montrer un par un?
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 .
É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()
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.
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
}
Cela fera:
db.getCollectionNames().forEach(c => {
db[c].find().forEach(d => {
print(c);
printjson(d)
})
})
Par ici:
db.collection_name.find().toArray().then(...function...)
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.