ไม่สามารถส่งคืนเฉพาะเอกสารที่ฝังไว้ อย่างไรก็ตาม มันจะส่งคืนเอกสารทั้งหมดจากคอลเลกชัน ให้เราใช้แบบสอบถามต่อไปนี้เพื่อสร้างคอลเลกชันที่มีเอกสาร
>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