Pregunta

En el shell de MongoDB, ¿cómo enumero todas las colecciones para la base de datos actual que estoy usando?

¿Fue útil?

Solución

Tu puedes hacer...

JS (Shell):

db.getCollectionNames()

node.js:

db.listCollections()

no js (solo shell):

show collections

La razón por la que llamo a eso no js es porque:

$ 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 realmente quieres ese dulce, dulce show collections salida, puede:

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

Otros consejos

> show collections

Enumerará todas las colecciones en el DB seleccionado actualmente, como se indica en la línea de la línea de comando (help).

¿Cómo enumero todas las colecciones para la base de datos actual que estoy usando?

3 métodos

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

Para enumerar todo bases de datos:

show dbs

Para ingresar o usar la base de datos dada:

use databasename

Para enumerar todo colecciones:

show collections

Producción:

collection1  
collection2  
system.indexes

(o)

show tables

Producción:

collection1  
collection2  
system.indexes

(o)

db.getCollectionNames()

Producción:

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

Para ingresar o usar la colección dada

use collectionname

> show tables

Da el mismo resultado que la respuesta de Cameron.

Aparte de las opciones sugeridas por otras personas:

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

También hay otra forma que puede ser realmente útil si desea saber cómo se creó cada una de las colecciones (por ejemplo, es una colección limitada con un tamaño particular)

db.system.namespaces.find()

Primero debe usar una base de datos para mostrar todas las colecciones/tablas dentro de ella.

>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

puedes usar show tables o show collections

Probar:

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

El comando utilizado para mostrar toda la colección en la base de datos MongoDB es

show collections 

Antes de ejecutar el comando show colecciones, debe seleccionar la base de datos

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

Para ver todas las bases de datos, puede usar el comando

show dbs // shows all the database names present 

Para obtener más información, visite este enlace: http://docs.mongodb.org/manual/tutorial/getting-started/

Si desea mostrar todas las colecciones de MongoDB Shell (línea de comandos), use Shell Helper

show collections

que muestran todas las colecciones para la base de datos actual. Si desea obtener toda la lista de colecciones de su aplicación, puede usar el método de base de datos MongoDB

db.getCollectionNames()

Para más información MongoDB Shell Aelper puedes verhttp://docs.mongodb.org/manual/reference/mongo-shell/

Los siguientes comandos en Mongoshell son comunes

show databases
show collections

También,

show dbs
use mydb
db.getCollectionNames()

A veces es útil ver todas las colecciones, así como los índices en las colecciones que forman parte del espacio de nombres general:

Así es como harías eso:

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

Entre los 3 comandos y este fragmento, ¡deberías estar bien cubierto!

Creo que una de las mayores confusiones es la diferencia entre lo que puedes hacer con mongo (o una carcasa interactiva/híbrida) vs. mongo --eval (o un shell JavaScript puro). Mantengo estos documentos útiles a mano:

Aquí hay un ejemplo de secuencia de comandos de lo que de otra manera podría hacer con show Comandos:

# 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: Eso funciona muy bien como OneLiner. (Pero se ve terrible en Stackoverflow.)

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

En> = 2.x, puedes hacer

db.listCollections()

En 1.x puedes hacer

db.getCollectionNames()

Para cambiar a la base de datos. por:-Use {your_database_name} ejemplo:

use friends

Donde amigos es el nombre de su base de datos.

luego escribir:-

db.getCollectionNames()
show collections

Esto le dará el nombre de las colecciones.

Enumere todas las colecciones de Mongo Shell:

  • db.getCollectionNames ()
  • Mostrar colecciones
  • mesas de exhibición

Nota: Las colecciones se mostrarán desde la base de datos actual donde se encuentra corrientemente

> show dbs        
anuradhfirst  0.000GB
local         0.000GB
> use anuradhfirst
switched to db anuradhfirst
> show collections
record
  • conectarse con la base de datos Mongo usando mongo, esto iniciará la conexión.
  • entonces corre show dbs Comando, esto le mostrará a todos la base de datos que sale/disponible.
  • luego seleccione el database ¿Quieres? En arriba es anuradhfirst, entonces corre use anuradhfirst. Esto cambiará a la base de datos que desee.
  • entonces corre show collections comando, esto mostrará todo el collections Dentro de su base de datos seleccionada.

Mostrar colecciones

Este comando generalmente funciona en Mongo Shell una vez que ha cambiado a la base de datos.

Para implementaciones de MongoDB 3.0 utilizando el motor de almacenamiento WiredTiger, si se ejecuta db.getCollectionNames() de una versión del shell mongo antes de 3.0 o una versión del controlador antes de la versión compatible con 3.0, db.getCollectionNames() No devolverá datos, incluso si existen colecciones existentes.

Para más detalles, consulte este

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

Detalles información de cada colección

db.runCommand( { listCollections: 1.0, authorizedCollections: true, nameOnly: true } )
  • Para los usuarios con el acceso requerido (Privilegios que otorgan la acción de ListCollections en la base de datos), el método enumera los nombres de todas las colecciones para la base de datos.
  • Para los usuarios sin el acceso requerido, el método enumera solo las colecciones para las cuales los usuarios tienen privilegios. Por ejemplo, si un usuario ha encontrado en una colección específica en una base de datos, el método devolvería solo esa colección.

yo suelo listCollections (Admite Mongo 3.0 y UP) para este propósito.

ejemplo:

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

Para obtener más información como el índice de la colección:

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

Para imprimir solo los nombres de la colección:

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

Siento que esto proporciona más flexibilidad.

Lee mas: https://docs.mongodb.com/manual/reference/command/listcollections/

Use el siguiente comando de Mongo Shell:- Mostrar colecciones

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top