MongoDB Pokaż całą zawartość ze wszystkich kolekcji


161

Czy można wyświetlić wszystkie kolekcje i ich zawartość w MongoDB?

Czy to jedyny sposób, aby pokazać je jeden po drugim?

Odpowiedzi:


261

Gdy jesteś w terminalu / linii poleceń, uzyskaj dostęp do bazy danych / kolekcji, której chcesz użyć, w następujący sposób:

show dbs
use <db name>
show collections

wybierz swoją kolekcję i wpisz następujące informacje, aby zobaczyć całą zawartość tej kolekcji:

db.collectionName.find()

Więcej informacji znajdziesz w Skróconym przewodniku po MongoDB .


Proszę podać to jako poprawną odpowiedź. Możesz przeglądać WSZYSTKIE treści ze WSZYSTKICH kolekcji, pisząc kod, nie
wysyłając

18
Jeśli chcesz wizualnie uporządkować prezentowaną Ci kolekcję, polecam również: db.collectionName.find().pretty()
Steven Ventimiglia

2
Pamiętaj, że to nie zadziała, jeśli masz określone znaki (takie jak łącznik) w nazwie kolekcji. W takim przypadku użyjdb["collection-name"].find()
Bossan

126

Krok 1: Zobacz wszystkie swoje bazy danych:

show dbs

Krok 2: Wybierz bazę danych

use your_database_name

Krok 3: Pokaż kolekcje

show collections

Spowoduje to wyświetlenie wszystkich kolekcji w wybranej bazie danych.

Krok 4: Zobacz wszystkie dane

db.collection_name.find() 

lub

db.collection_name.find().pretty()

3
Zastąpiłem nazwę db nazwą db, która ciągle dawała mi błędy. Więc nie rób głupich rzeczy takich jak ja: D, trzymaj siędb.<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
}

Myślę, że ten skrypt może dostać to, czego chcesz. Drukuje nazwę każdej kolekcji, a następnie drukuje jej elementy w formacie json.


19

Krok 1: Wejdź do powłoki MongoDB.

mongo

krok 2: do wyświetlenia wszystkich baz danych.

pokaż dbs;

krok 3: dla wybranej bazy danych:

użyj „nazwa_bazy_danych”

krok 4: do statystyk Twojej bazy danych.

db.stats ()

krok 5: wyszczególnienie wszystkich kolekcji (tabel).

pokaż kolekcje

krok 6: wydrukuj dane z określonej kolekcji.

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


9

Przed napisaniem poniższych zapytań najpierw przejdź do swojego cmd lub PowerShell

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

Aby wyświetlić wszystkie nazwy kolekcji, użyj jednej z poniższych opcji: -

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

Aby pokazać całą zawartość lub dane kolekcji, użyj poniższego kodu, który został opublikowany przez 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
}

Najlepsze rozwiązanie, pokazuje zawartość mojej kolekcji!
jjwallace


4

To wystarczy:

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

2

Wolę inne podejście, jeśli używasz mongopowłoki:

Najpierw jako inna odpowiedź: use my_database_namepotem:

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

To zapytanie pokaże ci coś takiego:

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

Możesz użyć podobnego podejścia, db.getCollectionInfos()ponieważ jest to całkiem przydatne, jeśli masz tak dużo danych.


Użyj count()zamiast find():db.getCollectionNames().map( (name) => ({[name]: db[name].count()}) )
hallman76
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.