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

MongoDB使用$project投影含点输出字段报错,如何解决?

MongoDB $project投影含点字段的错误解决办法

问题原因

MongoDB会将字段名中的点(.)解析为嵌套字段的路径分隔符,当你在$project中直接定义带点的输出字段名时,它会误把"Id No."这类字符串当成嵌套路径(比如Id.No),从而抛出Field path not ends with .的错误。

解决方法

方法1:使用$addFields(或$set)配合$project

先通过$addFields创建带点的字段,再用$project保留需要的字段,彻底避免路径解析冲突:

[
  {
    $addFields: {
      "Id No.": "$num",
      "Mobile No.": "$mob"
    }
  },
  {
    $project: {
      "Id No.": 1,
      "Mobile No.": 1,
      _id: 0 // 可选:排除默认的_id字段
    }
  }
]

方法2:在$project中用引号强制包裹字段名(适用于MongoDB 3.6+)

确保输出字段名被双引号完整包裹,明确告知MongoDB这是一个整体字段名而非嵌套路径:

[
  {
    $project: {
      "_id": 0,
      "Id No.": "$num",
      "Mobile No.": "$mob"
    }
  }
]

内容的提问来源于stack exchange,提问作者code guard

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 15:52:34