【发布时间】:2017-02-01 05:43:42
【问题描述】:
我的收藏是
学生
{
"first_name":"Harew",
"last_name":"Jackson",
"class":14,
"fee": [
{ "tuition":48500.2456, "transportation":500 }
]
}
我需要根据fee = 4500.24 过滤学生,它应该显示
所有学费为 4500.24 的学生忽略小数点后的其他数字。
我搜索过MongoDB: How to get N decimals precision in a query
查询中的精度,但此处提供的解决方案在我的场景中不起作用,因为
"$mod": [ "$amount.value", 0.01 ] 不适用于BigDecimal 类型,在我的收藏中,我的费用类型为BigDecimal。
以下解决方案似乎效果很好,但我不知道如何在 Scala 中实现它
db.collection.find({
"$where": function() {
return Math.round(this.fee.school * 100)/ 100 === 1.12;
}
})
【问题讨论】:
-
48500.2456 不等于 48500.24,不应在查询中使用。但是,出于报告目的,您可以根据自己的选择对其进行四舍五入。仅供参考 48500.2456 轮到 48500.25 而不是 48500.24
标签: mongodb scala playframework mongodb-query