Mongodb 如何将两个数组合并到对象的字段中
在mongodb聚合中,我有以下文档:Mongodb 如何将两个数组合并到对象的字段中,mongodb,aggregation-framework,mongodb-compass,Mongodb,Aggregation Framework,Mongodb Compass,在mongodb聚合中,我有以下文档: {key:['a','b','c'], scores:[1,2,3]} 想把它改成 {a:1, b:2, c:3} 在聚合阶段如何做?我正在使用MongoDB Compass版本1.21.2(1.21.2)您可以使用$zip 它以您需要的方式映射值,但格式不同 您可以使用$unwind、$project、$arrayToObject进一步转换为对象结构 正如@turivishal所指出的,您可以使用[mongoplayGrand.net/p/PSnI
{key:['a','b','c'], scores:[1,2,3]}
想把它改成
{a:1, b:2, c:3}
在聚合阶段如何做?我正在使用MongoDB Compass版本1.21.2(1.21.2)您可以使用
$zip
它以您需要的方式映射值,但格式不同
您可以使用$unwind、$project、$arrayToObject
进一步转换为对象结构
正如@turivishal所指出的,您可以使用[mongoplayGrand.net/p/PSnIzI8nF0A]将上述内容转换为所需的结构。nice,现在很容易看出这一点,您已经完成了答案。非常感谢这个解决方案。我正在尝试这样做:如果我的字段返回一个对象,而不是像下面这样的对象数组,该怎么办。你将如何聚合:``{'key':[“a”,“b”,“c”],“scores':[1,2,3]}``你提供并聚合的代码片段是一个object数组。不,它是一个object。您被数据周围的方括号
[]
弄糊涂了。这就是mongoplayground
的行为。
db.collection.aggregate([
{
$project: {
"output": {
"$zip": {
"inputs": [
"$key",
"$scores"
],
}
}
}
}
])