Jeśli chcesz przekonwertować całą kolekcję, możesz to zrobić za pomocą potoku agregacji.
Musisz przekonwertować walutę na ciąg znaków za pomocą $substr
i $toInt(
lub $toDouble
lub $convert
cokolwiek pasuje do twojego przypadku) w $project
stage i $out
jako ostatni etap agregacji. $out
zapisuje wynik potoku agregacji do podanej nazwy kolekcji.
Ale bądź ostrożny podczas używania $out
. Zgodnie z oficjalną dokumentacją mongodb :
Spróbuj tego:
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"
}
])
może być konieczne użycie allowDiskUse : true
jako opcję potoku agregacji, ponieważ masz dużo dokumentów i może przekroczyć limit 16 MB mongodb.
Nie zapomnij zastąpić collection_name
z rzeczywistą nazwą kolekcji i uwzględnij wszystkie wymagane pola w $project
etap, którego potrzebujesz w kolekcji. I proszę najpierw dokładnie sprawdzić wartość albo z innym temporary_collection
lub po prostu usuwając etap $out i sprawdzając wynik aggregation
potok.
Aby uzyskać szczegółowe informacje, przeczytaj oficjalną dokumentację mongodb $out , $toInt , $toDouble , $convert, $substr i allowDiskUse .