Home > Blockchain >  How remove whitespace characters in value field mongodb
How remove whitespace characters in value field mongodb

Time:03-07

this is my example object in MongoDB database:

{
  _id:"61e6c21d84df6644d9833382",
  Moc:"170 KM",
  Napęd:"Na przednie koła",
  Kolor:"Inny kolor",
  Marka_pojazdu:"Mitsubishi",
  Model_pojazdu:"ASX",
  Pojemność_skokowa:"2 400 cm3",
  Typ_nadwozia:"SUV",
  Liczba_drzwi:"5",
  Rodzaj_paliwa:"Benzyna",
  Skrzynia_biegów:"Automatyczna",
  Liczba_miejsc:"5"
}

I want to change Pojemność_skokowa:"2 400 cm3" to Pojemność_skokowa:"2400", how can I do that? Thanks!

CodePudding user response:

db.collection.update({},
[
  {
    $set: {
      Pojemnosc_skokowa: {
        $replaceAll: {
          input: {
            $reduce: {
              input: {
                $slice: [
                  { $split: [ "$Pojemnosc_skokowa", " " ] },
                  0,
                  { $add: [ { $size: { $split: [ "$Pojemnosc_skokowa", " " ] } }, -1 ] }
                ]
              },
              initialValue: "",
              in: { $concat: [ "$$value", "", "$$this" ] }
            }
          },
          find: " ",
          replacement: ""
        }
      }
    }
  }
],
{
  multi: true
})

mongoplayground

CodePudding user response:

Query

  • replaceAll " " with "" to remove all whitespace
  • substrCP to take the string except the last 3 characters to remove the "cm3"

Test code here

update({},
[{"$set":
  {"Pojemność_skokowa":
   {"$replaceAll":
    {"input":"$Pojemność_skokowa",
     "find":" ",
     "replacement":""}}}},
 {"$set":
  {"Pojemność_skokowa":
   {"$substrCP":
    ["$Pojemność_skokowa", 0,
     {"$subtract":
      [{"$subtract":
        [{"$strLenCP":"$Pojemność_skokowa"}, 3]}, 0]}]}}}])
  • Related