ใช้ตัวดำเนินการ $addToSet เพื่อให้แน่ใจว่าไม่มีรายการที่ซ้ำกันถูกเพิ่มเข้าไปในชุด ให้เราสร้างคอลเลกชันที่มีเอกสารก่อน -
> db.getDistinctDemo.insertOne({"Values":[100,200]}); { "acknowledged" : true, "insertedId" : ObjectId("5cef69f9ef71edecf6a1f69d") } > db.getDistinctDemo.insertOne({"Values":[300,100]}); { "acknowledged" : true, "insertedId" : ObjectId("5cef6a07ef71edecf6a1f69e") }
แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้วิธี find() -
> db.getDistinctDemo.find().pretty();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" : ObjectId("5cef69f9ef71edecf6a1f69d"), "Values" : [ 100, 200 ] } { "_id" : ObjectId("5cef6a07ef71edecf6a1f69e"), "Values" : [ 300, 100 ] }>
ต่อไปนี้เป็นแบบสอบถามเพื่อรับระดับที่แตกต่างกันของฟิลด์อาร์เรย์ใน MongoDB -
> db.getDistinctDemo.aggregate([ { "$group": { "_id": 0, "MyValues": { "$addToSet": "$Values" } } } ]);
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" : 0, "MyValues" : [ [ 300, 100 ], [ 100, 200 ] ] }