MongoDB -字段包含点的聚合

jk9hmnmh  于 2022-11-22  发布在  Go
关注(0)|答案(1)|浏览(137)

我有一个文档集合,其中的字段名称似乎带有一个点:

{  
  "prod_id": "123",
  "prod_cost (whole)": 49
  "prod_cost (dec.)": 49
}

如何使用该字段有效地运行聚合管道?
到目前为止,它报告空值,因为它将“)”视为prod_cost (dec.)的附加嵌套字段。

aamkag61

aamkag611#

在MongoDB版本5中,
MongoDB5.0增加了对字段名中使用($)和(.)的改进支持。有一些限制。更多细节请参见字段名注意事项。
带有句点(.)和美元符号($)的字段名
在大多数情况下,无法直接访问使用此类字段名存储的数据。您需要在访问这些字段的查询中使用帮助器方法,如$getField、$setField和$literal。

{ "$getField": "prod_cost (dec.)" }

Sample MongoPlayground
访问对象中的字段,请参见“查询子单据中的字段”演示。

{
  "$getField": {
    field: {
      $literal: "prod_cost (dec.)"
    },
    input: "$productInfo"
  }
}

Sample Mongo Playground (Nested object)

相关问题