我有一个这样的集合:
收藏基础:
{
_id:"a"
field:[
{
_id:"aa",
field1:"aa1"
},
{
_id:"ab",
field2:"ab2"
},
]
}
我可以使用什么查询来得到这样的结果:
{
_id:"a"
field:
{
_id:"ab",
field2:"ab2",
field1:"aa1"
},
}
换句话说,我想将此函数用作 field
数组上的猫鼬查询:
field.reduce((p,c)=>({...p,...c}),{})
答案 0 :(得分:1)
$reduce
迭代 field
的循环,将 initialValue
设置为空对象,$mergeObjects
合并 initialValue
表示 $$value
和 $$this
表示当前对象db.collection.aggregate([
{
$addFields: {
field: {
$reduce: {
input: "$field",
initialValue: {},
in: { $mergeObjects: ["$$value", "$$this"] }
}
}
}
}
])