1、实现原理,根据字符串截取实现
db.collection.aggregate([
{$project : {field : "123.4569999999"}}, // 自定义数值
{$project : {
field2 : { // 自定义字段
$substr:['$field', 0, // substr,截取字符串
{$cond:[ // 三元运算
{$gte:[{$indexOfCP : ['$field', "."]}, 0]}, // 是否存在小数点
{$add:[{$indexOfCP : ['$field', "."]}, 3]}, // 存在时,多向后取3位
{$strLenCP: '$field' } // 不存在,取字符串的长度
]}]}}}
])
结果:
{
"field2" : "123.45"
}
注意:如果想改变小数位数,可以修改‘向后取的位数’,小数点也算一位的哦!
还没有发现什么有效快速的解决方法,如您发现,请不要吝啬 -_-

本文介绍了一种在MongoDB中使用聚合管道和字符串操作函数来精确截取数值的小数部分的方法,通过自定义字段和三元运算实现,适用于需要调整小数精度的场景。

886

被折叠的 条评论
为什么被折叠?



