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.