如何将两个数组连接到对象的字段中

How to join two arrays into fields of object

总共mongodb,我有以下文件:

{key:['a','b','c'], scores:[1,2,3]}

想改成

{a:1, b:2, c:3}

聚合阶段怎么做?我正在使用 MongoDB 指南针版本 1.21.2 (1.21.2)

您可以使用$zip

play

db.collection.aggregate([
  {
    $project: {
      "output": {
        "$zip": {
          "inputs": [
            "$key",
            "$scores"
          ],
          
        }
      }
    }
  }
])

它以您需要的方式映射值,但格式不同。

您可以使用$unwind, $project, $arrayToObject进一步转换为对象结构。

正如@turivishal 指出的那样,您可以使用 (this)[mongoplayground.net/p/PSnIzI8nF0A].

将上面的内容转换为所需的结构