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

วิธีดึงค่าที่ไม่ซ้ำกัน (distinct) ใน MongoDB

ใช้เมธอด distinct() เพื่อดึงค่าที่ไม่ซ้ำกันของฟิลด์ที่ต้องการ ไวยากรณ์:

db.yourCollectionName.distinct("yourFieldName");

ตัวอย่างการใช้งาน

สร้างคอลเลกชัน distinctRecordDemo พร้อมข้อมูลนักศึกษา:

> db.distinctRecordDemo.insertOne({"StudentId":1,"StudentName":"John","StudentAge":21});
{ "acknowledged" : true, "insertedId" : ObjectId("5c77a78299b97a65744c1b50") }
> db.distinctRecordDemo.insertOne({"StudentId":2,"StudentName":"John","StudentAge":22});
{ "acknowledged" : true, "insertedId" : ObjectId("5c77a78b99b97a65744c1b51") }
> db.distinctRecordDemo.insertOne({"StudentId":3,"StudentName":"Carol","StudentAge":21});
{ "acknowledged" : true, "insertedId" : ObjectId("5c77a79a99b97a65744c1b52") }
> db.distinctRecordDemo.insertOne({"StudentId":4,"StudentName":"Carol","StudentAge":26});
{ "acknowledged" : true, "insertedId" : ObjectId("5c77a7a499b97a65744c1b53") }
> db.distinctRecordDemo.insertOne({"StudentId":5,"StudentName":"Sam","StudentAge":24});
{ "acknowledged" : true, "insertedId" : ObjectId("5c77a7b499b97a65744c1b54") }
> db.distinctRecordDemo.insertOne({"StudentId":6,"StudentName":"Mike","StudentAge":27});
{ "acknowledged" : true, "insertedId" : ObjectId("5c77a7c799b97a65744c1b55") }
> db.distinctRecordDemo.insertOne({"StudentId":7,"StudentName":"Sam","StudentAge":28});
{ "acknowledged" : true, "insertedId" : ObjectId("5c77a7d399b97a65744c1b56") }

แสดงข้อมูลทั้งหมด:

> db.distinctRecordDemo.find().pretty();
{"_id" : ObjectId("5c77a78299b97a65744c1b50"), "StudentId" : 1, "StudentName" : "John", "StudentAge" : 21 }
{"_id" : ObjectId("5c77a78b99b97a65744c1b51"), "StudentId" : 2, "StudentName" : "John", "StudentAge" : 22 }
{"_id" : ObjectId("5c77a79a99b97a65744c1b52"), "StudentId" : 3, "StudentName" : "Carol", "StudentAge" : 21 }
{"_id" : ObjectId("5c77a7a499b97a65744c1b53"), "StudentId" : 4, "StudentName" : "Carol", "StudentAge" : 26 }
{"_id" : ObjectId("5c77a7b499b97a65744c1b54"), "StudentId" : 5, "StudentName" : "Sam", "StudentAge" : 24 }
{"_id" : ObjectId("5c77a7c799b97a65744c1b55"), "StudentId" : 6, "StudentName" : "Mike", "StudentAge" : 27 }
{"_id" : ObjectId("5c77a7d399b97a65744c1b56"), "StudentId" : 7, "StudentName" : "Sam", "StudentAge" : 28 }

กรณี 1: ดึงค่า distinct ของฟิลด์ StudentName

> db.distinctRecordDemo.distinct("StudentName");
[ "John", "Carol", "Sam", "Mike" ]

กรณี 2: ดึงค่า distinct ของฟิลด์ StudentAge

> db.distinctRecordDemo.distinct("StudentAge");
[ 21, 22, 26, 24, 27, 28 ]