MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Filtrando valores em dólar com mongodb


Eu também gostaria de começar dizendo que armazenar valores numéricos em seu banco de dados formatados para apresentação como strings é uma má ideia, que você sem dúvida já conhece.

Com isso fora do caminho, aqui está a agregação que você está procurando:
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
      }
    }
  }
])

A ideia é substituir o $ e , com strings vazias e, em seguida, converta as strings resultantes em inteiros. A partir desse ponto, é apenas uma questão de combinar os valores numéricos.Playground:https://mongoplayground. net/p/YU65M-q1QCM