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

วิธีสร้างผลลัพธ์เป็นอาร์เรย์ของค่าที่เลือกใน MongoDB

ใช้เมธอด distinct() ซึ่งจะหาค่าที่ไม่ซ้ำกัน (distinct values) ของฟิลด์ที่ระบุ และคืนค่าเป็นอาร์เรย์ เริ่มต้นด้วยการสร้างคอลเลกชันตัวอย่าง:

> db.projectionListDemo.insertOne({"_id":"1","Subject":["MongoDB","MySQL","Java"]});
{ "acknowledged" : true, "insertedId" : "1" }
> db.projectionListDemo.insertOne({"_id":"2","Subject":["MongoDB","C","C++"]});
{ "acknowledged" : true, "insertedId" : "2" }
> db.projectionListDemo.insertOne({"_id":"3","Subject":["Java","Python"]});
{ "acknowledged" : true, "insertedId" : "3" }

แสดงเอกสารทั้งหมด:

> db.projectionListDemo.find().pretty();
{ "_id" : "1", "Subject" : [ "MongoDB", "MySQL", "Java" ] }
{ "_id" : "2", "Subject" : [ "MongoDB", "C", "C++" ] }
{ "_id" : "3", "Subject" : [ "Java", "Python" ] }

คิวรี่ดึง _id ของเอกสารที่มี "MongoDB" ในอาร์เรย์ Subject (คืนค่าเป็นอาร์เรย์):

> db.projectionListDemo.distinct('_id', {'Subject' : 'MongoDB'});
[ "1", "2" ]

หมายเหตุ: distinct() เหมาะสำหรับดึงค่าที่ไม่ซ้ำกันของฟิลด์เดียว หากต้องการดึงหลายฟิลด์หรือทำการคำนวณซับซ้อน ให้ใช้ Aggregate Framework แทน