Vorrei anche premetterlo dicendo che memorizzare valori numerici nel database formattati per la presentazione come stringhe è una cattiva idea, che senza dubbio già conosci.
Detto questo, ecco l'aggregazione che stai cercando:
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
}
}
}
])
L'idea è di sostituire $
e ,
con stringhe vuote e quindi eseguire il cast delle stringhe risultanti su numeri interi. Da quel momento, è solo una semplice questione di far corrispondere i valori numerici. Parco giochi:https://mongoplayground. netto/p/YU65M-q1QCM