You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MongoDB 5.0的$project阶段使用新的$getField运算符

要投影名称包含.的顶级字段,不能直接使用常规的"字段名": 1写法,因为MongoDB会默认将.识别为嵌套字段的分隔符,尝试查找嵌套结构内的字段,此时需要用$getField运算符明确指定要读取的完整字段名。

具体的聚合语句写法如下:

db.你的集合名.aggregate([
  {
    $project: {
      // 不需要返回_id字段的话可以保留下行配置,需要的话删除即可
      _id: 0,
      "price.usd": { $getField: "price.usd" }
    }
  }
])

执行后返回的结果如下:

{ "price.usd" : 45.99 }
{ "price.usd" : 499.99 }
{ "price.usd" : 199.99 }

注意:该写法仅适用于MongoDB 5.0及以上版本,更低版本既不支持包含.或以$开头的键名,也不支持$getField运算符。


内容的提问来源于stack exchange,提问作者Loránd Péter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 10:21:03