ในการรับเอกสารที่ฝังไว้ทั้งหมด ให้ใช้ $project ใน MongoDB ให้เราสร้างคอลเลกชันที่มีเอกสาร -
> db.demo220.insertOne({ ... "id":101, ... "FullName" : "John Doe", ... "EmailId" : "[email protected]", ... "ShippingDate" : new ISODate(), ... "details" : { "_id" :1001, "isMarried" :true } ...} ...); { "acknowledged" : true, "insertedId" : ObjectId("5e3eaf5b03d395bdc213471d") } > db.demo220.insertOne( ...{ ... "id":102, ... "FullName" : "John Smith", ... "EmailId" : "[email protected]", ... "ShippingDate" : new ISODate(), ... "details" : { "_id" :1002, "isMarried" :false } ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5e3eaf5c03d395bdc213471e") }
แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้วิธี find() -
> db.demo220.find();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" : ObjectId("5e3eaf5b03d395bdc213471d"), "id" : 101, "FullName" : "John Doe", "EmailId" : "[email protected]", "ShippingDate" : ISODate("2020-02-08T12:53:47.876Z"), "details" : { "_id" : 1001, "isMarried" : true } } { "_id" : ObjectId("5e3eaf5c03d395bdc213471e"), "id" : 102, "FullName" : "John Smith", "EmailId" : "[email protected]", "ShippingDate" : ISODate("2020-02-08T12:53:48.991Z"), "details" : { "_id" : 1002, "isMarried" : false } }
ต่อไปนี้เป็นแบบสอบถามเพื่อรับเอกสารที่ฝังทั้งหมด -
> db.demo220.aggregate({ $project : { ... "isMarried" : "$details.isMarried", ... "detailsId" : "$details_id", } });
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" : ObjectId("5e3eaf5b03d395bdc213471d"), "isMarried" : true } { "_id" : ObjectId("5e3eaf5c03d395bdc213471e"), "isMarried" : false }