我有一个集合设置,其中包含如下文档:
{
"_id" : ObjectId("5c786d9486c1140b1452d777"),
"code" : "TEST-123",
"owner" : "John",
"cars" : [
{
"carPlate" : "QPZ-756",
"carColor" : "blue"
},
{
"carPlate" : "REF-473",
"carColor" : "red"
}
],
}
我正在寻找一个mongo聚合查询,该查询可获取每个carPlate并为集合中的每个文档输出以下内容
{
"carPlate" : "QPZ-756",
"owner" : "John",
"code" : "TEST-123",
},
{
"carPlate" : "REF-473",
"owner" : "John",
"code" : "TEST-123",
},
我看过$ map运算符,这是一个不错的起点吗?
答案 0 :(得分:1)
我将使用$unwind
来使数组变平,然后使用$mergeObjects
将键与$replaceRoot
组合在一起以将合并文档提升到顶部。
类似
db.colname.aggregate([
{$unwind:"$cars"},
{$replaceRoot:{newRoot:{$mergeObjects:[{owner:"$owner"}, "$cars"]}}}
])