Se vuoi convertire l'intera raccolta, puoi farlo con la pipeline di aggregazione.
Devi convertire la valuta in stringa usando $substr
e $toInt(
o $toDouble
o $convert
qualunque sia il tuo caso) nel $project
stage e $out
come ultima fase di aggregazione. $out
scrive il risultato della pipeline di aggregazione nel nome della raccolta specificato.
Ma fai attenzione mentre usi $out
. Secondo la documentazione ufficiale di mongodb:
Prova questo:
db.collection_name.aggregate([
{
$project: {
category : "$category",
category_name : "$category_name",
lot_title : "$lot_title",
seller_name : "$seller_name",
seller_country : "$seller_country",
bid_count : "$bid_count",
winning_bid : { $toInt : {$substr : ["$winning_bid",2,-1]}},
bid_amount : "$bid_amount",
lot_image : "$lot_image"
}
},{
$out : "collection_name"
}
])
potresti dover usare allowDiskUse : true
come opzione per la pipeline di aggregazione, poiché hai molti documenti e potrebbe superare il limite di 16 MB di mongodb.
Non dimenticare di sostituire collection_name
con il nome effettivo della raccolta e includi tutti i campi richiesti nel $project
fase di cui hai bisogno nella raccolta. E per favore ricontrolla prima il valore con una temporary_collection
diversa o semplicemente rimuovendo la fase $out e controllando il risultato dell'aggregation
pipeline.
Per informazioni dettagliate, leggi la documentazione ufficiale di mongodb $out , $toInt , $toDouble , $convert, $substr e allowDiskUse .