MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Dollarwerte mit mongodb filtern

Ich möchte dies auch voranstellen, indem ich sage, dass es eine schlechte Idee ist, numerische Werte in Ihrer Datenbank zu speichern, die für die Präsentation als Zeichenfolgen formatiert sind, was Sie zweifellos bereits wissen.

Davon abgesehen, hier ist die Aggregation, nach der Sie suchen:

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
      }
    }
  }
])

Die Idee ist, das $ zu ersetzen und , mit leeren Zeichenfolgen und wandeln Sie die resultierenden Zeichenfolgen dann in Ganzzahlen um. Von diesem Punkt an müssen nur noch die numerischen Werte abgeglichen werden. Playground:https://mongoplayground. net/p/YU65M-q1QCM