ไม่สามารถส่งคืนเฉพาะเอกสารที่ฝังไว้ อย่างไรก็ตาม มันจะส่งคืนเอกสารทั้งหมดจากคอลเลกชัน ให้เราใช้แบบสอบถามต่อไปนี้เพื่อสร้างคอลเลกชันที่มีเอกสาร
>db.queryToEmbeddedDocument.insertOne({"UserName":"Larry","PostDetails":[{"UserMessage":"Hello","UserLikes":8},{"UserMessage":"Hi","UserLikes":6},{"UserMessage":"Good Morning","UserLikes":12},{"UserMessage":"Awesome","UserLikes":4}]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c988a9f330fd0aa0d2fe4bd")
} ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงเอกสารทั้งหมดจากคอลเลกชันโดยใช้วิธี find()
> db.queryToEmbeddedDocument.find().pretty();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้
{
"_id" : ObjectId("5c988a9f330fd0aa0d2fe4bd"),
"UserName" : "Larry",
"PostDetails" : [
{
"UserMessage" : "Hello",
"UserLikes" : 8
},
{
"UserMessage" : "Hi",
"UserLikes" : 6
},
{
"UserMessage" : "Good Morning",
"UserLikes" : 12
},
{
"UserMessage" : "Awesome",
"UserLikes" : 4
}
]
} ต่อไปนี้เป็นแบบสอบถามเพื่อส่งคืนเอกสารทั้งหมดจากคอลเลกชัน
> db.queryToEmbeddedDocument.find({"PostDetails.UserLikes": {$gte: 8}},{PostDetails:1}).pretty(); สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้
{
"_id" : ObjectId("5c988a9f330fd0aa0d2fe4bd"),
"PostDetails" : [
{
"UserMessage" : "Hello",
"UserLikes" : 8
},
{
"UserMessage" : "Hi",
"UserLikes" : 6
},
{
"UserMessage" : "Good Morning",
"UserLikes" : 12
},
{
"UserMessage" : "Awesome",
"UserLikes" : 4
}
]
} ดูตัวอย่างผลลัพธ์ด้านบน เราได้รับเอกสารทั้งหมดในขณะที่เราต้องการเฉพาะเอกสารที่ “UserLikes” มากกว่าหรือเท่ากับ 8