Trong MongoDB, db.collection.countDocuments()
phương thức trả về số lượng tài liệu phù hợp với truy vấn cho một bộ sưu tập hoặc chế độ xem.
Bộ sưu tập collection
một phần là tên của bộ sưu tập hoặc chế độ xem để thực hiện thao tác đếm.
Ví dụ
Giả sử chúng ta có một bộ sưu tập có tên là pets
với các tài liệu sau:
{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 } { "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 } { "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 } { "_id" : 4, "name" : "Scratch", "type" : "Cat", "weight" : 8 } { "_id" : 5, "name" : "Bruce", "type" : "Bat", "weight" : 3 } { "_id" : 6, "name" : "Fetch", "type" : "Dog", "weight" : 17 } { "_id" : 7, "name" : "Jake", "type" : "Dog", "weight" : 30 }
Chúng tôi có thể sử dụng truy vấn sau để trả về số lượng tài liệu trong bộ sưu tập:
db.pets.countDocuments({})
Kết quả:
7
Đếm kết quả của một truy vấn
Bạn có thể đếm kết quả của một truy vấn bằng cách chuyển các tiêu chí truy vấn.
Ví dụ:
db.pets.countDocuments({
"type": "Dog"
})
Kết quả:
4
Trong ví dụ này, chúng tôi phát hiện ra rằng có bốn con chó trong bộ sưu tập.
Hãy kiểm tra số lượng của một truy vấn khác. Lần này, chúng ta sẽ tìm xem có bao nhiêu vật nuôi có trọng lượng lớn hơn một số lượng nhất định.
db.pets.countDocuments({
"weight": { $gt: 10 }
})
Kết quả:
3
Giới hạn số lượng
Bạn sử dụng limit
để chỉ định số lượng tài liệu tối đa để đếm.
Ví dụ:
db.pets.countDocuments( {}, { limit: 5 } )
Kết quả:
5
Trước đây, chúng tôi đã thấy rằng thực sự có 7 tài liệu trong bộ sưu tập này, nhưng trong ví dụ này, chúng tôi đã giới hạn nó ở mức tối đa là 5.
Nếu giới hạn cao hơn số lượng thực, thì kết quả sẽ không bị ảnh hưởng bởi limit
đối số.
Ví dụ:
db.pets.countDocuments( {}, { limit: 10 } )
Kết quả:
7
Bỏ qua tài liệu
Bạn có thể đếm bằng cách sử dụng skip
tham số để bỏ qua một số tài liệu trước khi đếm.
Ví dụ:
db.pets.countDocuments( {}, { skip: 5 } )
Kết quả:
2
Ngừng sử dụng count()
trong Sự ủng hộ của countDocuments()
Lưu ý rằng tài liệu MongoDB nêu rõ những điều sau:
Trình điều khiển MongoDB tương thích với các tính năng 4.0 không dùng con trỏ và bộ sưu tập tương ứng
count()
Các API ủng hộ các API mới chocountDocuments()
vàestimatedDocumentCount()
. Để biết các tên API cụ thể cho một trình điều khiển nhất định, hãy xem tài liệu về trình điều khiển.
Thông tin thêm
countDocuments()
phương thức không dựa vào siêu dữ liệu để trả về số lượng như count()
phương pháp nào. Thay vào đó, nó thực hiện tổng hợp các tài liệu, dẫn đến số lượng chính xác (không phải lúc nào cũng có thể nói cho count()
phương pháp).
Theo tài liệu MongoDB, countDocuments()
là chính xác ngay cả sau khi tắt máy không sạch hoặc khi có tài liệu mồ côi trong một cụm phân đoạn.
db.collection.count()
phương thức cũng chấp nhận một hint
và một maxTimeMS
tham số.
Xem tài liệu MongoDB để biết thêm thông tin.