在MongoDB中,可以使用MongoDB的聚合管道操作来将json格式的字符串转换为对象并提取其中的属性。

以下是一个示例的聚合管道操作:

db.collection.aggregate([
  {
    $addFields: {
      data: {
        $cond: {
          if: { $eq: [{ $type: "$request_body" }, "string"] },
          then: { $parseJSON: "$request_body" },
          else: "$request_body"
        }
      }
    }
  },
  {
    $addFields: {
      username: "$data.username"
    }
  },
  {
    $project: {
      _id: 0,
      username: 1
    }
  }
])

在上述聚合管道操作中,首先使用$addFields操作将request_body字段转换为一个对象类型的字段data。然后使用$addFields操作将data.username赋值给新的字段username。最后使用$project操作指定只返回username字段。

执行上述聚合管道操作后,将会返回一个只包含username字段的文档。

请注意,上述聚合管道操作中使用了$parseJSON操作符来解析request_body字段的值为对象类型,这需要MongoDB的版本为4.0以上。如果您的MongoDB版本较低,可以考虑使用$jsonParse操作符来替代$parseJSON操作符。

希望对你有帮助

MongoDB查询时怎么将一个json格式的字符串转成对象?并提取其中的一个属性json字符串如下:remote_addr18016849234server_port443http_refererhttpsfcpcszhongancomtimestamp2023-03-09T043744344Zupstream_addr172201278180cluster_id4time2023-03-09 1

原文地址: http://www.cveoy.top/t/topic/hQzC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录