Saya juga ingin mengawali ini dengan mengatakan bahwa menyimpan nilai numerik dalam database Anda yang diformat untuk presentasi sebagai string adalah ide yang buruk, yang pasti sudah Anda ketahui.
Dengan itu, inilah agregasi yang Anda cari:
db.collection.aggregate([
{
"$project": {
"AppraisedValueDisplay": {
$replaceAll: {
input: "$AppraisedValueDisplay",
find: {
$literal: "$"
},
replacement: ""
}
}
}
},
{
"$project": {
"AppraisedValueDisplay": {
"$toInt": {
$replaceAll: {
input: "$AppraisedValueDisplay",
find: ",",
replacement: ""
}
}
}
}
},
{
$match: {
AppraisedValueDisplay: {
$gt: 30000,
$lt: 40000
}
}
}
])
Idenya adalah untuk mengganti $
dan ,
dengan string kosong dan kemudian melemparkan string yang dihasilkan ke bilangan bulat. Sejak saat itu, ini hanya masalah sederhana untuk mencocokkan nilai numerik. Playground:https://mongoplayground. net/p/YU65M-q1QCM