Jag skulle också vilja inleda detta med att säga att det är en dålig idé att lagra numeriska värden i din databas formaterade för presentation som strängar, vilket du säkert redan vet.
Med det ur vägen, här är sammanställningen du letar efter:
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
}
}
}
])
Tanken är att ersätta $
och ,
med tomma strängar och kasta sedan de resulterande strängarna till heltal. Från den punkten är det bara en enkel fråga att matcha de numeriska värdena.Lekplats:https://mongoplayground. net/p/YU65M-q1QCM