MongoDB 中的 $unwind 運算子是什麼?


MongoDB 中的 $unwind 運算子對每個陣列都相同,它返回對映文件。下面是 $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” 陣列欄位。

更新於:30-Jul-2019

282 次瀏覽

開啟你的 職業

完成課程獲取認證

開始
廣告
© . All rights reserved.