Je voudrais également préfacer ceci en disant que stocker des valeurs numériques dans votre base de données formatées pour être présentées sous forme de chaînes est une mauvaise idée, que vous connaissez sans doute déjà.
Cela dit, voici l'agrégation que vous recherchez :
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'idée est de remplacer le $
et ,
avec des chaînes vides, puis convertissez les chaînes résultantes en entiers. À partir de là, il suffit simplement de faire correspondre les valeurs numériques.Playground :https://mongoplayground. net/p/YU65M-q1QCM