【发布时间】:2019-07-11 16:42:54
【问题描述】:
我有一个这样的集合:每个文档都包含Message 字段,而该字段又包含Fields 的数组。 Fields 数组下的每个文档都有 Value 和 Name 属性。
[
{
"_id" : ObjectId("55711efed0103b1598140076"),
"Message" : {
"Fields" : [
{
"Value" : 131,
"Name" : "Options",
},
{
"Value" : 8,
"Name" : "Length",
}
]
}
},
{
"_id" : ObjectId("55711efed0103b1598140077"),
"Message" : {
"Fields" : [
{
"Value" : 65,
"Name" : "Options",
},
{
"Value" : 13,
"Name" : "Length",
},
{
"Value" : 101,
"Name" : "Width",
}
]
}
}
]
在使用db.Collection.find({}) 找到文档后,我想进行这样的投影 - 它解析Message.Fields 下的每个Field 并将它们投影到新文档中,使用Type 作为属性名称和Value 作为值。输出如下所示:
[
{
"_id" : ObjectId("55711efed0103b1598140076"),
"Options" : 131,
"Length" : 8
},
{
"_id" : ObjectId("55711efed0103b1598140077"),
"Options" : 65,
"Length" : 13,
"Width" : 101
},
]
这是否可以在 MongoDB 中使用 function() 或 aggregate 或任何其他方式来实现?
【问题讨论】:
-
最后一个键值对中的每个对象的字段数组中都有不必要的逗号。
标签: mongodb mongodb-query aggregation-framework