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

Golang操作MongoDB投影时$round报错:仅支持数值类型而非对象的解决方法

解决MongoDB $round操作符报错问题

报错原因是你给$round传了bson.D结构(键值对对象),但MongoDB的$round要求参数是数组格式,第一个元素是数值字段引用,第二个是保留的小数位数。

修正后的代码如下:

projectStage := bson.D{
    {"$project", bson.D{
        {"_id", 0},
        {"name", "$_id"},
        {"total", 1},
        {"totalPagu", 1},
        {"idpagu", 1},
        {"pdn", bson.D{
            {"$round", bson.A{"$pdn", 2}},
        }},
    }},
}

关键修改点:

  • 把$round的参数从bson.D换成bson.A(数组类型),符合MongoDB $round的语法要求:$round: [字段引用, 小数位数]
  • 字段引用要加$前缀,正确指向文档中的pdn字段
  • 第二个参数设为2,实现最多保留2位小数的需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 04:00:58