Question

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

Était-ce utile?

La solution

Vous pouvez le faire...

JS (shell):

db.getCollectionNames()

node.js:

db.listCollections()

non-JS (coque):

show collections

La raison pour laquelle je l'appel que les non-JS c'est parce 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 doux show collections de sortie, vous pouvez:

$ mongo prodmongo/app --eval "db.getCollectionNames().join('\n')"
MongoDB shell version: 3.2.10
connecting to: prodmongo/app
Profiles
Unit_Info

Autres conseils

> show collections

listera toutes les collections de la base de données actuellement sélectionnée, comme indiqué dans l'aide de la ligne de commande (help).

Comment répertorier toutes les collections de la base de données actuelle que j'utilise?

3 méthodes

  • show collections
  • show tables
  • db.getCollectionNames()

Pour lister toutes les bases de données :

show dbs

Pour entrer ou utiliser une base de données donnée:

use databasename

Pour lister toutes les collections :

show collections

Sortie:

collection1  
collection2  
system.indexes

(ou)

show tables

Sortie:

collection1  
collection2  
system.indexes

(ou)

db.getCollectionNames()

Sortie:

[ "collection1", "collection2", "system.indexes" ]

Pour entrer ou utiliser une collection donnée

use collectionname

> show tables

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

En dehors des 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 être très pratique si vous voulez savoir comment chacune des collections a été créée (par exemple, il s'agit d'une collection plafonnée avec une taille particulière)

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

Essayez:

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 du shell mongodb (ligne de commande), utilisez l'assistant shell

show collections

qui affiche toutes les collections de la base de données actuelle. Si vous souhaitez obtenir toute la liste des collections de votre application, vous pouvez utiliser la méthode de base de données mongodb

db.getCollectionNames()

Pour plus d'informations, l'assistant de shell mongodb vous pouvez voir http://docs.mongodb.org/manual/reference/mongo-shell/

Les commandes suivantes sur mongoshell sont courantes

show databases
show collections

Aussi,

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 procéder:

 db.getCollectionNames().forEach(function(collection) {
indexes = db[collection].getIndexes();
print("Indexes for " + collection + ":");
printjson(indexes);
});

Entre les 3 commandes et cet extrait de code, vous devriez être bien couvert!

Je pense que l'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 faire autrement 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 oneliner.(Mais ça a l'air 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 l'exemple {your_database_name} :

use friends

où amis est le nom de votre base de données.

puis écrivez: -

db.getCollectionNames()
show collections

cela vous donnera le nom des collections.

Répertorier toutes les collections du shell mongo:

  • db.getCollectionNames ()
  • afficher les collections
  • afficher les tableaux

Remarque: les collections s'afficheront à partir de la base de données actuelle dans laquelle vous vous trouvez actuellement

> 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 le database que vous voulez. Au-dessus, c'est anuradhfirst, puis exécutez use anuradhfirst.this basculera vers la base de données souhaitée.
  • puis exécutez la commande show collections, cela affichera tout le collections dans votre base de données sélectionnée.

afficher les collections

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

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 consulter ceci

 1. show collections; //Display all collection
 2. show tables     //Display all collection
 3. db.getCollectionNames();   // Retuen array of collection Example :[ "orders", "system.profile" ]

Informations détaillées sur chaque collection

db.runCommand( { listCollections: 1.0, authorizedCollections: true, nameOnly: true } )
  • Pour les utilisateurs disposant de l'accès requis (privilèges qui accordent listCollections sur la base de données), la méthode liste les noms de toutes les collections de la base de données.
  • Pour les utilisateurs sans accès requis, la méthode répertorie uniquement les collections pour lesquelles les utilisateurs ont des privilèges.Par exemple, si un l'utilisateur a trouvé sur une collection spécifique dans une base de données, la méthode retournerait juste cette collection.

J'utilise listCollections (prend en charge 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 des collections:

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 du shell mongo: - afficher les collections

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top