我有一个问题,我已经用$ unwind和$ group解决了,但我真的很感兴趣是否有可能用$ reduce解决。 目前正在使用MongoDb 3.4
这是输入:
{
"myArray": [
{"foo":"x",
"bar":"y",
"important": {
"imp_1": "a",
"imp_2": "b"
}
},
{
"foo":"x",
"bar":"y",
"important": {
"imp_1": "aa",
"imp_3": "bb"
}
}
]
}
以下是我想要实现的目标:
{
"myArray": [
{"foo":"x",
"bar":"y",
"important": [
{"k":"imp_1", "v":"a"},
{"k":"imp_2": "v":"b"}
]
}
},
{
"foo":"x",
"bar":"y",
"important": [
{"k":"imp_1","v": "aa"},
{"k":"imp_3","v": "bb"}
]
}
]
}
是否可以用1 $ reduce来解决它? 我的问题是,它只创造了1"重要的"数组,而不是初始数组中每个对象的2。
$ reduce是否比$ unwind,$ group和$ project更好?
Thx&问候, Grunci