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?

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 .


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()

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.


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 ()


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
}

Melhor solução, mostra o conteúdo da minha coleção!
jjwallace 12/02


4

Isso fará:

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

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.


Use em count()vez de find():db.getCollectionNames().map( (name) => ({[name]: db[name].count()}) )
hallman76 30/01
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.