Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

ตัวดำเนินการ $unwind ใน MongoDB คืออะไร


ตัวดำเนินการ $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" แต่ละฟิลด์