Dans le shell MongoDB, comment répertorier toutes les collections de la base de données actuelle que j'utilise?
Tu peux faire...
JS (Shell):
db.getCollectionNames()
node.js:
db.listCollections()
non-JS (Shell uniquement):
show collections
La raison pour laquelle j'appelle ce type de non-JS est que:
$ mongo prodmongo/app --eval "show collections"
MongoDB Shell version: 3.2.10
connecting to: prodmongo/app
2016-10-26T19:34:34.886-0400 E QUERY [thread1] SyntaxError: missing ; before statement @(Shell eval):1:5
$ mongo prodmongo/app --eval "db.getCollectionNames()"
MongoDB Shell version: 3.2.10
connecting to: prodmongo/app
[
"Profiles",
"Unit_Info"
]
Si vous voulez vraiment cette sortie douce, douce show collections
, vous pouvez:
$ mongo prodmongo/app --eval "db.getCollectionNames().join('\n')"
MongoDB Shell version: 3.2.10
connecting to: prodmongo/app
Profiles
Unit_Info
> show collections
listera toutes les collections du DB actuellement sélectionné, comme indiqué dans l'aide en ligne de commande (help
).
> show tables
Cela donne le même résultat que la réponse de Cameron.
Outre les options suggérées par d'autres personnes:
show collections //output every collection
show tables
db.getCollectionNames() //shows all collections as a list
Il existe également un autre moyen qui peut s'avérer très utile si vous souhaitez savoir comment chacune des collections a été créée (par exemple, il s'agit d'une collection limitée d'une taille donnée)
db.system.namespaces.find()
Vous devez d’abord utiliser une base de données pour afficher toutes les collections/tables qu’elle contient.
>show dbs
users 0.56787GB
test (empty)
>db.test.help() // this will give you all the function which can be used with this db
>use users
>show tables //will show all the collection in the db
vous pouvez utiliser show tables
ou show collections
Essayer:
help // To show all help methods
show dbs // To show all dbs
use dbname // To select your db
show collections // To show all collections in selected db
La commande utilisée pour afficher toute la collection dans la base de données mongoDb est
show collections
Avant d'exécuter la commande show collections, vous devez sélectionner la base de données.
use mydb //mydb is the name of the database being selected
Pour voir toutes les bases de données, vous pouvez utiliser la commande
show dbs // shows all the database names present
Pour plus d'informations, visitez ce lien: http://docs.mongodb.org/manual/tutorial/getting-started/
Si vous souhaitez afficher toutes les collections de mongodb Shell (ligne de commande), utilisez l’aide de Shell.
show collections
qui affiche toutes les collections de la base de données courante . Si vous voulez obtenir toutes les listes de collections de votre application, vous pouvez utiliser la méthode de la base de données mongodb
db.getCollectionNames()
Pour plus d'informations sur mongodb Shell helper, vous pouvez consulter http://docs.mongodb.org/manual/reference/mongo-Shell/
Les commandes suivantes sur mongoshell sont communes
show databases
show collections
Également,
show dbs
use mydb
db.getCollectionNames()
Parfois, il est utile de voir toutes les collections ainsi que les index des collections qui font partie de l'espace de noms global:
Voici comment vous feriez cela:
db.getCollectionNames().forEach(function(collection) {
indexes = db[collection].getIndexes();
print("Indexes for " + collection + ":");
printjson(indexes);
});
Entre les 3 commandes et cet extrait, vous devriez être bien couvert!
Je pense qu'une des plus grandes confusions est la différence entre ce que vous pouvez faire avec mongo
(ou un shell interactif/hybride) et mongo --eval
(ou un shell javascript pur). Je garde ces documents utiles à portée de main:
Voici un exemple de script de ce que vous pourriez sinon faire avec les commandes show
:
# List all databases and the collections in them
mongo --eval "
db.getMongo().getDBNames().forEach(
function(v, i){
print(
v + '\n\t' +
db.getSiblingDB(v).getCollectionNames().join('\n\t')
)
}
)
"
Remarque: cela fonctionne très bien comme un oneliner. (Mais semble terrible sur StackOverflow.)
mongo --eval "db.getMongo().getDBNames().forEach(function(v, i){print(v+'\n\t'+db.getSiblingDB(v).getCollectionNames().join('\n\t'))})"
Sur> = 2.x, vous pouvez faire
db.listCollections()
Sur 1.x vous pouvez faire
db.getCollectionNames()
Pour basculer vers la base de données ..__ par: - , utilisez {your_database_name} example:
use friends
où amis est le nom de votre base de données.
puis écrire:-
db.getCollectionNames()
show collections
cela vous donnera le nom des collections.
Liste de toutes les collections du mongo Shell:
- db.getCollectionNames ()
- montrer les collections
- montrer les tables
Remarque: Les collections montreront depuis la base de données actuelle où vous vous trouvez actuellement
montrer les collections
cette commande fonctionne généralement sur le shell mongo une fois que vous êtes passé à la base de données.
> show dbs
anuradhfirst 0.000GB
local 0.000GB
> use anuradhfirst
switched to db anuradhfirst
> show collections
record
mongo
, cela démarrera la connexion.show dbs
, cela vous montrera toutes les bases de données existantes/disponibles.database
que vous voulez.in ci-dessus est anuradhfirst
, puis exécutez use anuradhfirst
. cela basculera vers la base de données souhaitée.show collections
, cela affichera toutes les collections
dans la base de données sélectionnée. 1. show collections; //Display all collection
2. show tables //Display all collection
3. db.getCollectionNames(); // Retuen array of collection Example :[ "orders", "system.profile" ]
Détails des informations de chaque collection
db.runCommand( { listCollections: 1.0, authorizedCollections: true, nameOnly: true } )
Pour les déploiements MongoDB 3.0 utilisant le moteur de stockage WiredTiger, si vous exécutez
db.getCollectionNames()
à partir d'une version du shell mongo avant la version 3.0 ou une version du pilote antérieure à la version compatible 3.0,db.getCollectionNames()
ne renverra aucune donnée, même s'il y a collections existantes.
Pour plus de détails, veuillez vous référer à this
J'utilise listCollections
(supporte mongo 3.0 et plus) à cette fin.
exemple:
db.runCommand({ listCollections: 1, filter: {}, nameOnly: true });
Pour récupérer plus d’informations comme l’index de la collection:
db.runCommand({ listCollections: 1, filter: {}, nameOnly: false });
Pour imprimer uniquement les noms de collection:
db.runCommand({ listCollections: 1, filter: {}, nameOnly: true }).cursor.firstBatch.forEach(v => {print(v.name)})
Je pense que cela offre plus de flexibilité.
en savoir plus: https://docs.mongodb.com/manual/reference/command/listCollections/
utilisez la commande suivante de mongo Shell: - show collections