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
相关产品推荐
相关产品推荐

