ใช้ $project กำหนด _id: 0
ใน stage $project กำหนด _id: 0 เพื่อไม่รวม _id ในผลลัพธ์ และระบุฟิลด์ที่ต้องการด้วย 1
ไวยากรณ์
db.yourCollectionName.aggregate([
{$project: {
_id: 0,
yourIncludeFieldName: 1,
anotherField: 1
}}
]).pretty();
ตัวอย่าง
สร้างคอลเลกชัน hideidDemo:
> db.hideidDemo.insertOne({"UserName":"Larry","UserAge":23,"UserCountryName":"US"});
> db.hideidDemo.insertOne({"UserName":"Chris","UserAge":21,"UserCountryName":"AUS"});
> db.hideidDemo.insertOne({"UserName":"Robert","UserAge":26,"UserCountryName":"UK"});
Aggregation ซ่อน _id แสดงแค่ UserName และ UserCountryName
> db.hideidDemo.aggregate([
{$project: {
_id: 0,
UserName: 1,
UserCountryName: 1
}}
]).pretty();
ผลลัพธ์:
{ "UserName" : "Larry", "UserCountryName" : "US" }
{ "UserName" : "Chris", "UserCountryName" : "AUS" }
{ "UserName" : "Robert", "UserCountryName" : "UK" }
เทคนิคนี้ใช้กันบ่อยเมื่อส่งข้อมูลไป frontend ไม่ต้องการ _id