Хорошо . поэтому используйте следующий код: - 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; 
    }
}) 

Ответы на вопрос(1)

Ваш ответ на вопрос