Domanda

Nella shell MongoDB, come posso elencare tutte le raccolte per il database corrente che sto usando?

È stato utile?

Soluzione

Tu puoi fare...

JS (Shell):

db.getCollectionNames()

node.js:

db.listCollections()

non JS (solo shell):

show collections

Il motivo per cui lo chiamo non JS è perché:

$ 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"
]

Se vuoi davvero così dolce, dolce show collections output, puoi:

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

Altri suggerimenti

> show collections

Elencherà tutte le raccolte nel DB attualmente selezionato, come indicato nella guida della riga di comando (help).

Come posso elencare tutte le raccolte per il database corrente che sto usando?

3 metodi

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

Per elencare tutto banche dati:

show dbs

Per inserire o utilizzare il database fornito:

use databasename

Per elencare tutto collezioni:

show collections

Produzione:

collection1  
collection2  
system.indexes

(o)

show tables

Produzione:

collection1  
collection2  
system.indexes

(o)

db.getCollectionNames()

Produzione:

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

Per inserire o utilizzare la raccolta data

use collectionname

> show tables

Dà lo stesso risultato alla risposta di Cameron.

A parte le opzioni suggerite da altre persone:

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

C'è anche un altro modo che può essere davvero utile se vuoi sapere come è stata creata ciascuna delle collezioni (ad esempio è una raccolta limitata con una dimensione particolare)

db.system.namespaces.find()

Per prima cosa è necessario utilizzare un database per mostrare tutte le raccolte/tabelle al suo interno.

>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

Puoi usare show tables o show collections

Provare:

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

Il comando utilizzato per la visualizzazione di tutta la raccolta nel database MongoDB è

show collections 

Prima di eseguire il comando Show Collections è necessario selezionare il database

use mydb //mydb is the name of the database being selected

Per vedere tutti i database è possibile utilizzare il comando

show dbs // shows all the database names present 

Per ulteriori informazioni, visitare questo link: http://docs.mongodb.org/manual/tutorial/getting-started/

Se si desidera mostrare tutte le raccolte da MongoDB Shell (riga di comando), usa Shell Helper

show collections

che mostrano tutte le raccolte per il database corrente. Se si desidera ottenere tutto l'elenco di raccolta dalla tua applicazione, puoi utilizzare il metodo del database MongoDB

db.getCollectionNames()

Per maggiori informazioni Helper Shell MongoDB puoi vederehttp://docs.mongodb.org/manual/reference/mongo-shell/

I seguenti comandi su Mongoshell sono comuni

show databases
show collections

Anche,

show dbs
use mydb
db.getCollectionNames()

A volte è utile vedere tutte le raccolte e gli indici sulle raccolte che fanno parte dello spazio dei nomi complessivi:

Ecco come lo faresti:

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

Tra i 3 comandi e questo frammento dovresti essere ben coperto!

Penso che una delle più grandi confusioni sia la differenza tra ciò che puoi fare mongo (o una shell interattiva/ibrida) vs. mongo --eval (o una shell javascript pura). Tengo a portata di mano questi documenti utili:

Ecco un esempio di scripting di cosa potresti fare altrimenti show Comandi:

# 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')
            )
        }
    )
"

Nota: funziona davvero bene come Oneliner. (Ma sembra terribile su Stackoverflow.)

mongo --eval "db.getMongo().getDBNames().forEach(function(v, i){print(v+'\n\t'+db.getSiblingDB(v).getCollectionNames().join('\n\t'))})"

On> = 2.x, puoi farlo

db.listCollections()

Su 1.x puoi fare

db.getCollectionNames()

Per passare al database. di:-usa {your_database_name} esempio:

use friends

Dove gli amici sono il nome del tuo database.

allora scrivi:-

db.getCollectionNames()
show collections

Questo ti darà il nome delle collezioni.

Elenca tutte le raccolte dalla shell di Mongo:

  • db.getCollectionNames ()
  • Mostra collezioni
  • mostra i tavoli

Nota: le raccolte verranno visualizzate dal database corrente in cui si trova attualmente

> show dbs        
anuradhfirst  0.000GB
local         0.000GB
> use anuradhfirst
switched to db anuradhfirst
> show collections
record
  • Connettiti con il database Mongo utilizzando mongo, questo inizierà la connessione.
  • Quindi corri show dbs Comando, questo mostrerà tutto il database uscita/disponibile.
  • Quindi selezionare il database vuoi.in sopra lo è anuradhfirst, Quindi corri use anuradhfirst. Questo passerà al database desiderato.
  • Quindi corri show collections comando, questo mostrerà tutto il collections All'interno del database selezionato.

Mostra collezioni

Questo comando di solito funziona su Mongo Shell una volta che è passato al database.

Per le distribuzioni MongoDB 3.0 utilizzando il motore di archiviazione WiredTiger, se si esegue db.getCollectionNames() Da una versione della shell Mongo prima di 3.0 o una versione del driver prima della versione compatibile 3.0, db.getCollectionNames() non restituirà dati, anche se ci sono raccolte esistenti.

Per ulteriori dettagli, fare riferimento a questo

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

Dettagli informazioni su ogni raccolta

db.runCommand( { listCollections: 1.0, authorizedCollections: true, nameOnly: true } )
  • Per gli utenti con l'accesso richiesto (privilegi che concedono l'azione di ListCollections nel database), il metodo elenca i nomi di tutte le raccolte per il database.
  • Per gli utenti senza l'accesso richiesto, il metodo elenca solo le raccolte per le quali gli utenti hanno privilegi. Ad esempio, se un utente ha trovato su una raccolta specifica in un database, il metodo restituirebbe proprio quella raccolta.

Io uso listCollections (Supporta Mongo 3.0 e in su) A questo scopo.

esempio:

db.runCommand({ listCollections: 1, filter: {}, nameOnly: true });

Per recuperare maggiori informazioni come l'indice della raccolta:

db.runCommand({ listCollections: 1, filter: {}, nameOnly: false });

Per stampare solo i nomi della raccolta:

db.runCommand({ listCollections: 1, filter: {}, nameOnly: true }).cursor.firstBatch.forEach(v => {print(v.name)})

Sento che questo fornisce maggiore flessibilità.

leggi di più: https://docs.mongodb.com/manual/reference/command/listcollections/

Usa il seguente comando da Mongo Shell:- Mostra collezioni

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top