Arrays 如何在Mongodb中展开两个阵列并清晰地投影它们?
我想在一个文档中展开两个数组。现在我想用定义其类型的额外字段将它们单独投影,如下所述。假设已清洗,则类型应定义为清洗;如果已安装,则类型应定义为已安装 该文件的格式如下:Arrays 如何在Mongodb中展开两个阵列并清晰地投影它们?,arrays,mongodb,project,Arrays,Mongodb,Project,我想在一个文档中展开两个数组。现在我想用定义其类型的额外字段将它们单独投影,如下所述。假设已清洗,则类型应定义为清洗;如果已安装,则类型应定义为已安装 该文件的格式如下: { "install":["Date1"] "wash": ["Date1", "Date2", "Date3"] } 我想要的输出如下: { "install": "Date1" "type": "install" }, { "wash": "Date1", "type": "wash" }, { "wash":
{
"install":["Date1"]
"wash": ["Date1", "Date2", "Date3"]
}
我想要的输出如下:
{
"install": "Date1"
"type": "install"
},
{
"wash": "Date1",
"type": "wash"
},
{
"wash": "Date2",
"type": "wash"
},
{
"wash": "Date3",
"type":"wash"
}
此聚合返回所需的结果:
db.test.aggregate( [
{
$facet: {
install: [
{ $unwind: "$install" },
{ $project: { type: "install", install: 1, _id: 0 } }
],
wash: [
{ $unwind: "$wash" },
{ $project: { type: "wash", wash: 1, _id: 0 } }
]
}
},
{
$project: { result: { $concatArrays: [ "$install", "$wash" ] } }
}
] )
此聚合返回所需的结果:
db.test.aggregate( [
{
$facet: {
install: [
{ $unwind: "$install" },
{ $project: { type: "install", install: 1, _id: 0 } }
],
wash: [
{ $unwind: "$wash" },
{ $project: { type: "wash", wash: 1, _id: 0 } }
]
}
},
{
$project: { result: { $concatArrays: [ "$install", "$wash" ] } }
}
] )