如何統計 MongoDB 中每個欄位/鍵的不同數值?


你可以使用 distinct 命令來實現這個目的。為了理解這個概念,讓我們建立一個帶有文件的集合。建立帶有文件的集合的查詢如下所示 -

> 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")
}

使用 find() 方法顯示集合中的所有文件。查詢如下 -

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

以下是輸出 -

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

以下是查詢每個欄位/鍵不同的數值的查詢 -

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

以下是輸出 -

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

以下是查詢陣列中不同值長度的查詢 -

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

以下是輸出 -

6

更新於:30-07-2019

430 次瀏覽

開啟你的 職業

完成課程獲取認證

立即開始
廣告