ตัวดำเนินการ $unwind ใน MongoDB จะเหมือนกันสำหรับแต่ละอาร์เรย์ ซึ่งจะส่งคืนเอกสารการแมป นี่คือตัวอย่างตัวดำเนินการ $unwind ใน MongoDB
เพื่อให้เข้าใจแนวคิด ให้เราสร้างคอลเลกชันพร้อมกับเอกสาร แบบสอบถามเพื่อสร้างคอลเลกชันที่มีเอกสารมีดังนี้ -
> db.unwindOperatorDemo.insertOne({"StudentName":"Larry","StudentAge":23,"StudentSubje ct":["C","C++","Java","MongoDB"]}); { "acknowledged" : true, "insertedId" : ObjectId("5c7ef5f3559dd2396bcfbfc8") }
แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้เมธอด find() แบบสอบถามมีดังต่อไปนี้ −
> db.unwindOperatorDemo.find().pretty();
ต่อไปนี้เป็นผลลัพธ์ -
{ "_id" : ObjectId("5c7ef5f3559dd2396bcfbfc8"), "StudentName" : "Larry", "StudentAge" : 23, "StudentSubject" : [ "C", "C++", "Java", "MongoDB" ] }
นี่คือตัวอย่างตัวดำเนินการ $unwind แบบสอบถามมีดังต่อไปนี้ −
> db.unwindOperatorDemo.aggregate( ... { $project : { ... StudentName : 1 , ... StudentAge: 1 , ... StudentSubject : 1 ... }}, ... { $unwind : "$StudentSubject" } ... ).pretty();
ต่อไปนี้เป็นผลลัพธ์ -
{ "_id" : ObjectId("5c7ef5f3559dd2396bcfbfc8"), "StudentName" : "Larry", "StudentAge" : 23, "StudentSubject" : "C" } { "_id" : ObjectId("5c7ef5f3559dd2396bcfbfc8"), "StudentName" : "Larry", "StudentAge" : 23, "StudentSubject" : "C++" } { "_id" : ObjectId("5c7ef5f3559dd2396bcfbfc8"), "StudentName" : "Larry", "StudentAge" : 23, "StudentSubject" : "Java" } { "_id" : ObjectId("5c7ef5f3559dd2396bcfbfc8"), "StudentName" : "Larry", "StudentAge" : 23, "StudentSubject" : "MongoDB" }
ดูผลลัพธ์ตัวอย่าง ฟิลด์ "StudentName" และ "StudentAge" กำลังจับคู่กับฟิลด์อาร์เรย์ "StudentSubject" แต่ละฟิลด์