Computer >> Máy Tính >  >> Lập trình >> MongoDB

Làm cách nào để đếm số lượng giá trị riêng biệt trên mỗi trường / khóa trong MongoDB?

Bạn có thể sử dụng lệnh riêng biệt cho việc này. Để hiểu khái niệm, chúng ta hãy tạo một bộ sưu tập với tài liệu. Truy vấn để tạo một bộ sưu tập với một tài liệu như sau -

> db.distinctCountValuesDemo.insertOne({"StudentFirstName":"John","StudentFavouriteSubject":["C","C++","Java","MySQL","C","C++"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8a39f193b406bd3df60e07")
}
> db.distinctCountValuesDemo.insertOne({"StudentFirstName":"Larry","StudentFavouriteSubject":["MongoDB","SQL Server"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8a3a1193b406bd3df60e08")
}

Hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find (). Truy vấn như sau -

> db.distinctCountValuesDemo.find().pretty();

Sau đây là kết quả -

{
   "_id" : ObjectId("5c8a39f193b406bd3df60e07"),
   "StudentFirstName" : "John",
   "StudentFavouriteSubject" : [
      "C",
      "C++",
      "Java",
      "MySQL",
      "C",
      "C++"
   ]
}
{
   "_id" : ObjectId("5c8a3a1193b406bd3df60e08"),
   "StudentFirstName" : "Larry",
   "StudentFavouriteSubject" : [
      "MongoDB",
      "SQL Server"
   ]
}

Đây là truy vấn để tìm một số giá trị riêng biệt cho mỗi trường / khóa -

> db.distinctCountValuesDemo.distinct('StudentFavouriteSubject');

Sau đây là kết quả -

[ "C", "C++", "Java", "MySQL", "MongoDB", "SQL Server" ]

Đây là truy vấn để tìm độ dài của giá trị khác biệt trong mảng -

> db.distinctCountValuesDemo.distinct('StudentFavouriteSubject').length;

Sau đây là kết quả -

6