MongoDB Mostra tutti i contenuti di tutte le raccolte


161

È possibile mostrare tutte le raccolte e i suoi contenuti in MongoDB?

È l'unico modo per mostrare uno per uno?

Risposte:


263

Una volta che ci si trova nel terminale / riga di comando, accedere al database / raccolta che si desidera utilizzare come segue:

show dbs
use <db name>
show collections

scegli la tua raccolta e digita quanto segue per vedere tutti i contenuti di quella raccolta:

db.collectionName.find()

Maggiori informazioni qui sulla Guida di riferimento rapido di MongoDB .


Si prega di indicare questa come la risposta corretta. Puoi visualizzare TUTTO il contenuto di TUTTE le raccolte scrivendo il codice, non
eseguendo

19
Se hai bisogno di riordinare visivamente la collezione che ti è stata presentata, ti consiglio anche: db.collectionName.find().pretty()
Steven Ventimiglia,

2
Tieni presente che non funziona se hai determinati caratteri (come un trattino) nel nome della raccolta. In quel caso usadb["collection-name"].find()
Bossan

126

Passaggio 1: visualizza tutti i tuoi database:

show dbs

Passaggio 2: selezionare il database

use your_database_name

Passaggio 3: mostra le raccolte

show collections

Questo elencherà tutte le raccolte nel database selezionato.

Passaggio 4: vedere tutti i dati

db.collection_name.find() 

o

db.collection_name.find().pretty()

3
Ho sostituito il nome db con il mio nome db, che ha continuato a darmi errori. Quindi non fare cose stupide come me: D, db.<collection_name>.find();
atteniti

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
}

Penso che questo script potrebbe ottenere quello che vuoi. Stampa il nome di ogni collezione e quindi stampa i suoi elementi in json.


19

passaggio 1: accedere alla shell MongoDB.

mongo

passo 2: per visualizzare tutti i database.

mostra dbs;

passaggio 3: per un database selezionato:

usa 'nome_database'

passaggio 4: per le statistiche del database.

db.stats ()

passaggio 5: elencare tutte le raccolte (tabelle).

mostra raccolte

passaggio 6: stampare i dati da una particolare raccolta.

db.'collection_name'.find (). abbastanza ()


9

Prima di scrivere le query seguenti, accedi al tuo cmd o PowerShell

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

Per elencare tutti i nomi delle raccolte, utilizzare uno qualsiasi delle opzioni seguenti: -

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

Per mostrare il contenuto o i dati di tutte le raccolte, utilizzare il codice elencato di seguito che era stato pubblicato da 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
}

La migliore soluzione, mostra i contenuti della mia collezione!
jjwallace,


4

Questo farà:

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

2

Preferisco un altro approccio se stai usando la mongoshell:

Prima come l'altro risponde: use my_database_namepoi:

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

Questa query ti mostrerà qualcosa del genere:

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

Puoi usare un approccio simile con db.getCollectionInfos()esso è abbastanza utile se hai così tanti dati.


Usa count()invece di find():db.getCollectionNames().map( (name) => ({[name]: db[name].count()}) )
hallman76
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.