sql >> Database >  >> NoSQL >> MongoDB

Dollarwaarden filteren met mongodb

Ik zou dit ook willen inleiden door te zeggen dat het een slecht idee is om numerieke waarden in uw database op te slaan die zijn opgemaakt voor presentatie als strings, wat u ongetwijfeld al weet.

Met dat uit de weg, hier is de verzameling die u zoekt:

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

Het idee is om de $ . te vervangen en , met lege tekenreeksen en vervolgens de resulterende tekenreeksen naar gehele getallen casten. Vanaf dat punt is het gewoon een kwestie van de numerieke waarden matchen.Playground:https://mongoplayground. net/p/YU65M-q1QCM



  1. Automatisering van implementatie van MongoDB-database

  2. Gebruik Mongosniff om te verduidelijken wat uw MongoDB hoort en zegt

  3. Mongoose-populatie op twee niveaus met KeystoneJs

  4. Converteer tekenreeksarray naar object-ID-array