Хорошо . поэтому используйте следующий код: - 48500.2456.setScale (2, BigDecimal.RoundingMode.FLOOR) == 48500.24. Где 48500.2456 - это ваше значение из БД.
я есть моя коллекция как
Ученик
{
"first_name":"Harew",
"last_name":"Jackson",
"class":14,
"fee": [
{ "tuition":48500.2456, "transportation":500 }
]
}
Мне нужно отфильтровать студента в соответствии сfee = 4500.24
и в нем должны отображаться все учащиеся, имеющие плату 4500,24, игнорируя другие цифры после десятичной точки.
Я искал вMongoDB: Как получить точность N десятичных знаков в запросе точность в запросе, но решение, представленное здесь, не работает в моем сценарии, так как"$mod": [ "$amount.value", 0.01 ]
не применимо дляBigDecimal
типа и в моей коллекции у меня есть тип оплаты какBigDecimal
.
Следующее решение, кажется, работает хорошо, но я не знаю, как реализовать это в Scala
db.collection.find({
"$where": function() {
return Math.round(this.fee.school * 100)/ 100 === 1.12;
}
})