สร้างคอลเลกชันตัวอย่าง
> db.demo285.insertOne(
{ details: [
{ Name: "Chris" },
{ Name2: "Bob" },
{ Name: "Mike" }
] }
);
{ "acknowledged": true, "insertedId": ObjectId("5e4abffef49383b52759cbb9") }
แสดงข้อมูล
> db.demo285.find();
{ "_id": ObjectId("5e4abffef49383b52759cbb9"), "details": [ { "Name": "Chris" }, { "Name2": "Bob" }, { "Name": "Mike" } ] }
คิวรี Aggregate: $match $exists -> $unwind -> $match $exists -> $project
> db.demo285.aggregate([
{ $match: { 'details.Name': { $exists: 1 } } },
{ $unwind: "$details" },
{ $match: { 'details.Name': { $exists: 1 } } },
{ $project: { Name: "$details.Name", _id: 0 } }
])
ผลลัพธ์: เฉพาะ Subdocument ที่มีฟิลด์ Name
{ "Name": "Chris" }
{ "Name": "Mike" }