Để đếm số lượng giá trị distinct (duy nhất) của một trường trong MongoDB, bạn kết hợp phương thức distinct() với thuộc tính length của mảng kết quả.
Cú pháp
Tạo dữ liệu mẫu
Có 6 document nhưng chỉ 4 tên khác nhau: John, Chris, Carol, David (Chris và Carol trùng).
Hiển thị tất cả:
{ "_id" : ObjectId("5cbd6166de8cc557214c0dfa"), "StudentName" : "John" } { "_id" : ObjectId("5cbd616ade8cc557214c0dfb"), "StudentName" : "Chris" } { "_id" : ObjectId("5cbd616cde8cc557214c0dfc"), "StudentName" : "Chris" } { "_id" : ObjectId("5cbd6170de8cc557214c0dfd"), "StudentName" : "Carol" } { "_id" : ObjectId("5cbd6175de8cc557214c0dfe"), "StudentName" : "David" } { "_id" : ObjectId("5cbd6181de8cc557214c0dff"), "StudentName" : "Carol" }Đếm distinct
Giải thích
distinct("StudentName")- Trả về mảng các giá trị duy nhất:["John", "Chris", "Carol", "David"].length- Thuộc tính JavaScript Array cho độ dài mảng (4)
Cách thay thế cho collection lớn
Dùng Aggregation (hiệu quả hơn, không giới hạn 16MB như distinct):
Kết quả:
{ "distinctCount" : 4 }