Rád bych to také uvedl na úvod tím, že ukládat číselné hodnoty ve vaší databázi formátované pro prezentaci jako řetězce je špatný nápad, což už nepochybně víte.
S tím mimo, zde je agregace, kterou hledáte:
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
}
}
}
])
Cílem je nahradit $
a ,
s prázdnými řetězci a poté přetypovat výsledné řetězce na celá čísla. Od tohoto okamžiku je to jen jednoduchá záležitost shody číselných hodnot. Playground:https://mongoplayground. net/p/YU65M-q1QCM