Als u de hele verzameling wilt converteren, kunt u dit doen met de aggregatiepijplijn.
U moet de valuta converteren naar string met behulp van $substr
en $toInt(
of $toDouble
, of $convert
wat bij je past) in het $project
stage en $out
als uw laatste aggregatiestadium. $out
schrijft het resultaat van de aggregatiepijplijn naar de opgegeven verzamelingsnaam.
Maar wees voorzichtig bij het gebruik van $out
. Volgens officiële mongodb-documentatie:
Probeer dit:
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"
}
])
mogelijk moet u allowDiskUse : true
. gebruiken als een optie voor een aggregatiepijplijn, omdat je veel documenten hebt, en het kan de 16 MB mongodb-limiet overschrijden.
Vergeet niet collection_name
te vervangen met de werkelijke collectienaam en voeg alle vereiste velden toe aan het $project
fase die je nodig hebt in de collectie. En controleer de waarde eerst met een andere temporary_collection
of gewoon door het $out-stadium te verwijderen en het resultaat van aggregation
te controleren pijplijn.
Lees voor gedetailleerde informatie de officiële mongodb-documentatie $out , $toInt , $toDouble , $convert, $substr en allowDiskUse .