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

在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/PSnIzI8nF0A]将上述内容转换为所需的结构。

nice,现在很容易看出这一点,您已经完成了答案。非常感谢这个解决方案。我正在尝试这样做:如果我的字段返回一个对象,而不是像下面这样的对象数组,该怎么办。你将如何聚合:``{'key':[“a”,“b”,“c”],“scores':[1,2,3]}``你提供并聚合的代码片段是一个object数组。不,它是一个object。您被数据周围的方括号
[]
弄糊涂了。这就是
mongoplayground
的行为。
db.collection.aggregate([
  {
    $project: {
      "output": {
        "$zip": {
          "inputs": [
            "$key",
            "$scores"
          ],
          
        }
      }
    }
  }
])