MongoDB Mostrar todo o conteúdo de todas as coleções

161

É possível mostrar todas as coleções e seu conteúdo no MongoDB?

É a única maneira de mostrar um por um?

Reno
fonte

Respostas:

262

Quando estiver na linha de comando / terminal, acesse o banco de dados / coleção que deseja usar da seguinte maneira:

show dbs
use <db name>
show collections

escolha sua coleção e digite o seguinte para ver todo o conteúdo dessa coleção:

db.collectionName.find()

Mais informações aqui no Guia de referência rápida do MongoDB .

sharkySharks
fonte
Por favor, indique isso como a resposta correta. Você só pode visualizar todo o conteúdo a partir de coleções TODAS escrevendo código, não consulta via cli
imbatman
19
Se você precisar arrumar visualmente a coleção apresentada, também recomendo: db.collectionName.find().pretty()
Steven Ventimiglia
2
Lembre-se de que isso não funcionará se você tiver determinados caracteres (como um hífen) no nome da coleção. Nesse caso, usedb["collection-name"].find()
Bossan 03/03/19
126

Etapa 1: veja todos os seus bancos de dados:

show dbs

Etapa 2: selecione o banco de dados

use your_database_name

Etapa 3: mostrar as coleções

show collections

Isso listará todas as coleções no banco de dados selecionado.

Etapa 4: veja todos os dados

db.collection_name.find() 

ou

db.collection_name.find().pretty()
Debadatta
fonte
3
Substituí o nome do banco de dados pelo meu nome de banco de dados, que continuava me fornecendo erros. Portanto, não faça coisas estúpidas como eu: D, atenha-sedb.<collection_name>.find();
adam shamsudeen
33
var collections = db.getCollectionNames();
for(var i = 0; i< collections.length; i++){    
   print('Collection: ' + collections[i]); // print the name of each collection
   db.getCollection(collections[i]).find().forEach(printjson); //and then print the json of each of its elements
}

Eu acho que esse script pode obter o que você deseja. Ele imprime o nome de cada coleção e, em seguida, imprime seus elementos em json.

Bruno_Ferreira
fonte
19

Etapa 1: Entre no shell do MongoDB.

mongo

Etapa 2: para exibir todos os bancos de dados.

mostre dbs;

etapa 3: para um banco de dados selecionado:

use 'database_name'

Etapa 4: para estatísticas do seu banco de dados.

db.stats ()

Etapa 5: listando todas as coleções (tabelas).

mostrar coleções

etapa 6: imprima os dados de uma coleção específica.

db.'collection_name'.find (). pretty ()

Vaibhav gole
fonte
9

Antes de escrever as perguntas abaixo, entre primeiro no cmd ou no PowerShell

TYPE:
mongo             //To get into MongoDB shell
use <Your_dbName>      //For Creating or making use of existing db

Para listar todos os nomes de coleções, use qualquer uma das opções abaixo: -

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

Para mostrar todo o conteúdo ou dados de coleções, use o código listado abaixo, publicado por Bruno_Ferreira.

var collections = db.getCollectionNames();
for(var i = 0; i< collections.length; i++) {    
   print('Collection: ' + collections[i]); // print the name of each collection
   db.getCollection(collections[i]).find().forEach(printjson); //and then print     the json of each of its elements
}
Amit Kumar
fonte
Melhor solução, mostra o conteúdo da minha coleção!
jjwallace 12/02
4

Deste jeito:

db.collection_name.find().toArray().then(...function...)
Vladimir Sostaric
fonte
4

Isso fará:

db.getCollectionNames().forEach(c => {
    db[c].find().forEach(d => {
        print(c); 
        printjson(d)
    })
})
yunzen
fonte
2

Eu prefiro outra abordagem se você estiver usando o mongoshell:

Primeiro como o outro responde: use my_database_nameentão:

db.getCollectionNames().map( (name) => ({[name]: db[name].find().toArray().length}) )

Esta consulta mostrará algo como isto:

[
        {
                "agreements" : 60
        },
        {
                "libraries" : 45
        },
        {
                "templates" : 9
        },
        {
                "users" : 18
        }
]

Você pode usar uma abordagem semelhante, db.getCollectionInfos()pois é bastante útil se você tiver muitos dados.

Juan de Dios
fonte
Use em count()vez de find():db.getCollectionNames().map( (name) => ({[name]: db[name].count()}) )
hallman76 30/01