首页 > 解决方案 > 查询将 mongodb 数组转换为键值对

问题描述

我需要创建一个 mongodb 查询来将数组转换为键值

我的文件是这样的:

{
    "_id" : ObjectId("5c8718b9b5fe262104408374"),
    "axis" : "x",
    "message_time" : ISODate("2019-03-11T08:04:41.000Z"),
    "x_axis" : [ 
        0.9766, 
        1.9531, 
        2.9297, 
        3.9063, 
        4.8828, 
        5.8594, 
        6.8359, 
        7.8125, 
        8.7891,
    ],
    "etl_date_time" : ISODate("2019-03-12T02:26:01.510Z")
}

我想把它转换成

{
    "_id" : ObjectId("5c8718b9b5fe262104408374"),
    "axis" : "x",
    "message_time" : ISODate("2019-03-11T08:04:41.000Z"),
    "x_axis" : 8.7891,
    "etl_date_time" : ISODate("2019-03-12T02:26:01.510Z")
}

谁能帮我查询?

标签: mongodb

解决方案


您可以使用聚合框架来实现这一点。

db.collection.aggregate([
  {
    $addFields: {
      x_axis: {
        $arrayElemAt: [
          {
            $slice: [
              "$x_axis",
              -1
            ]
          },
          0
        ]
      }
    }
  }
])

如果您需要对您的收藏进行更新,您可以添加一个$out阶段

蒙古游乐场


推荐阅读