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” 数组字段。
广告