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
})
CodePudding user response:
Query
- replaceAll " " with "" to remove all whitespace
- substrCP to take the string except the last 3 characters to remove the "cm3"
update({},
[{"$set":
{"Pojemność_skokowa":
{"$replaceAll":
{"input":"$Pojemność_skokowa",
"find":" ",
"replacement":""}}}},
{"$set":
{"Pojemność_skokowa":
{"$substrCP":
["$Pojemność_skokowa", 0,
{"$subtract":
[{"$subtract":
[{"$strLenCP":"$Pojemność_skokowa"}, 3]}, 0]}]}}}])