MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Filtraggio dei valori in dollari con mongodb

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