MongoDB Hiển thị tất cả nội dung từ tất cả các bộ sưu tập


161

Có thể hiển thị tất cả các bộ sưu tập và nội dung của nó trong MongoDB không?

Là cách duy nhất để hiển thị từng cái một?

Câu trả lời:


261

Khi bạn đang ở trong terminal / dòng lệnh, truy cập cơ sở dữ liệu / bộ sưu tập bạn muốn sử dụng như sau:

show dbs
use <db name>
show collections

chọn bộ sưu tập của bạn và gõ như sau để xem tất cả nội dung của bộ sưu tập đó:

db.collectionName.find()

Thông tin thêm ở đây trên Hướng dẫn tham khảo nhanh MongoDB .


Hãy nêu đây là câu trả lời đúng. Bạn chỉ có thể xem TẤT CẢ nội dung từ TẤT CẢ các bộ sưu tập bằng cách viết mã, không truy vấn qua cli
imbatman

18
Nếu bạn cần dọn dẹp trực quan bộ sưu tập được giới thiệu cho bạn, tôi cũng khuyên bạn nên: db.collectionName.find().pretty()
Steven Ventimiglia

2
Hãy nhớ rằng điều này không hoạt động nếu bạn có một số ký tự (như dấu gạch nối) trong tên bộ sưu tập. Trong trường hợp đó, hãy sử dụngdb["collection-name"].find()
Bossan

126

Bước 1: Xem tất cả các cơ sở dữ liệu của bạn:

show dbs

Bước 2: Chọn cơ sở dữ liệu

use your_database_name

Bước 3: Hiển thị các bộ sưu tập

show collections

Điều này sẽ liệt kê tất cả các bộ sưu tập trong cơ sở dữ liệu đã chọn của bạn.

Bước 4: Xem tất cả dữ liệu

db.collection_name.find() 

hoặc là

db.collection_name.find().pretty()

3
Tôi đã thay thế tên db bằng tên db của mình, nó vẫn tiếp tục gây ra lỗi cho tôi. Vì vậy, đừng làm những điều ngu ngốc như tôi: D, hãy bám lấydb.<collection_name>.find();
adam shamsudeen 29/11/18

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
}

Tôi nghĩ kịch bản này có thể có được những gì bạn muốn. Nó in tên của mỗi bộ sưu tập và sau đó in các phần tử của nó trong json.


19

Bước 1: Nhập vào trình bao MongoDB.

mongo

Bước 2: để hiển thị tất cả các cơ sở dữ liệu.

hiển thị dbs;

Bước 3: cho cơ sở dữ liệu được chọn:

sử dụng 'cơ sở dữ liệu'

bước 4: để thống kê cơ sở dữ liệu của bạn.

db.stats ()

bước 5: liệt kê ra tất cả các bộ sưu tập (bảng).

bộ sưu tập chương trình

Bước 6: in dữ liệu từ một bộ sưu tập cụ thể.

db.'collection_name'.find (). beautiful ()


9

Trước khi viết các truy vấn bên dưới, trước tiên hãy truy cập vào cmd hoặc PowerShell của bạn

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

Để liệt kê tất cả tên bộ sưu tập sử dụng bất kỳ một trong các tùy chọn bên dưới: -

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

Để hiển thị tất cả các bộ sưu tập nội dung hoặc dữ liệu, hãy sử dụng mã được liệt kê bên dưới đã được Bruno_Ferreira đăng.

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
}

Giải pháp tốt nhất, hiển thị nội dung của bộ sưu tập của tôi!
jjwallace


4

Điều này sẽ làm:

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

2

Tôi thích cách tiếp cận khác nếu bạn đang sử dụng mongoshell:

Đầu tiên là các câu trả lời khác: use my_database_namesau đó:

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

Truy vấn này sẽ cho bạn thấy một cái gì đó như thế này:

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

Bạn có thể sử dụng cách tiếp cận tương tự với db.getCollectionInfos()nó khá hữu ích nếu bạn có quá nhiều dữ liệu.


Sử dụng count()thay vì find():db.getCollectionNames().map( (name) => ({[name]: db[name].count()}) )
hallman76
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.