Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Đếm giá trị distinct trong MongoDB?

Để đế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 }