Hvis du vil konvertere hele samlingen, kan du gøre det med Aggregation pipeline.
Du skal konvertere valutaen til streng ved hjælp af $substr
og $toInt(
eller $toDouble
, eller $convert
uanset hvad der passer til dit tilfælde) i $project
stage og $out
som din sidste fase af aggregering. $out
skriver resultatet af aggregeringspipelinen til det givne samlingsnavn.
Men vær forsigtig, mens du bruger $out
. Ifølge officiel mongodb-dokumentation:
Prøv dette:
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"
}
])
du skal muligvis bruge allowDiskUse : true
som en mulighed for aggregering af pipeline, da du har en masse dokumenter, og det kan overstige 16 MB mongodb-grænsen.
Glem ikke at erstatte collection_name
med det faktiske samlingsnavn og inkludere alle de påkrævede felter i $project
fase, som du har brug for i samlingen. Og dobbelttjek venligst værdien først enten med en anden temporary_collection
eller bare ved at fjerne $out-stadiet og kontrollere resultatet af aggregation
pipeline.
For detaljerede oplysninger læs den officielle mongodb-dokumentation $out , $toInt , $toDouble , $convert, $substr og allowDiskUse .