Trong MongoDB, cursor.count()
phương thức đếm số lượng tài liệu được tham chiếu bởi con trỏ ..
Lưu ý rằng nó không thực sự thực hiện truy vấn. Nó chỉ đơn giản là đếm và trả về số lượng kết quả sẽ được trả về bởi truy vấn.
cursor.count()
phương thức là một trình bao bọc cho count
lệnh.
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.find().count()
Kết quả:
7
Điều này tương đương với việc làm như sau:
db.pets.count()
Kết quả:
7
Tài liệu MongoDB thực sự khuyên không nên sử dụng cursor.count()
khi find()
phương thức được gọi mà không có vị từ truy vấn. Điều này là do trong những trường hợp như vậy, kết quả dựa trên siêu dữ liệu của bộ sưu tập, điều này có thể dẫn đến số lượng gần đúng.
Đế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 đến find()
phương pháp.
Ví dụ:
db.pets.find({"type": "Dog"}).count()
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.find({"weight": { $gt: 10 }}).count()
Kết quả:
3
Ngừng sử dụng
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.
applySkipLimit
Tham số
cursor.count()
phương thức chấp nhận một tham số tùy chọn:applySkipLimit
tham số.
Tham số này chỉ định xem có nên xem xét các tác động của cursor.skip()
hay không và cursor.limit()
phương pháp đếm.
Theo mặc định, nó bỏ qua bất kỳ hiệu ứng nào của hai phương pháp đó. Để bao gồm các hiệu ứng, hãy sử dụng appySkipLimit: true
.
Thông tin thêm
Xem tài liệu MongoDB để biết thêm thông tin.