Бих искал също да предваря това, като кажа, че съхраняването на числови стойности във вашата база данни, форматирани за представяне като низове, е лоша идея, която без съмнение вече знаете.
Като премахнете това, ето агрегацията, която търсите:
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
}
}
}
])
Идеята е да се замени $
и ,
с празни низове и след това преобразувайте получените низове в цели числа. От този момент е просто да съпоставите числовите стойности.Playground:https://mongoplayground. net/p/YU65M-q1QCM