web-dev-qa-db-fra.com

Comment lister toutes les collections dans le shell mongo?

Dans le shell MongoDB, comment répertorier toutes les collections de la base de données actuelle que j'utilise?

685
coffee-grinder

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
1050
AdaTheDev
> show collections

listera toutes les collections du DB actuellement sélectionné, comme indiqué dans l'aide en ligne de commande (help).

401
Cameron

> show tables

Cela donne le même résultat que la réponse de Cameron.

51
Kevin Meredith

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()
28
Salvador Dali

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
20
Tarun Gupta

vous pouvez utiliser show tables ou show collections

14
lxg

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
13
Indrajeet Singh

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/

11
kkk

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/

10

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!

9
Sood

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'))})"
4
Bruno Bronosky

Sur> = 2.x, vous pouvez faire

db.listCollections()

Sur 1.x vous pouvez faire

db.getCollectionNames()
2
Aniruddh Joshi

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.

2
Shashikant Pandit

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

1
Hasib Kamal

montrer les collections 

cette commande fonctionne généralement sur le shell mongo une fois que vous êtes passé à la base de données.

1
PHINCY L PIOUS
> show dbs        
anuradhfirst  0.000GB
local         0.000GB
> use anuradhfirst
switched to db anuradhfirst
> show collections
record
  • connectez-vous à la base de données mongo en utilisant mongo, cela démarrera la connexion.
  • puis exécutez la commande show dbs, cela vous montrera toutes les bases de données existantes/disponibles.
  • puis sélectionnez la database que vous voulez.in ci-dessus est anuradhfirst, puis exécutez use anuradhfirst. cela basculera vers la base de données souhaitée.
  • puis exécutez la commande show collections, cela affichera toutes les collections dans la base de données sélectionnée.
0
Anuradh S
 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 utilisateurs ayant l'accès requis (privilèges accordant l'action ListCollections sur la base de données), la méthode répertorie les noms De toutes les collections de la base de données.
  • Pour les utilisateurs sans l'accès requis, la méthode répertorie uniquement les collections Pour lesquelles les utilisateurs disposent de privilèges. Par exemple, si un utilisateur .__ a trouvé une collection spécifique dans une base de données, la méthode Renverrait uniquement cette collection.
0
Amitesh

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

0
Rahul

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/

0
new_user

utilisez la commande suivante de mongo Shell: - show collections

0
Anoop Sharma