Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

จะนับจำนวนค่าที่แตกต่างกันต่อฟิลด์ / คีย์ใน MongoDB ได้อย่างไร


คุณสามารถใช้คำสั่งเฉพาะสำหรับสิ่งนี้ เพื่อให้เข้าใจแนวคิด ให้เราสร้างคอลเลกชันพร้อมกับเอกสาร แบบสอบถามเพื่อสร้างคอลเลกชันที่มีเอกสารมีดังนี้ -

> 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