Wenn Sie die gesamte Sammlung konvertieren möchten, können Sie dies mit der Aggregationspipeline tun.
Sie müssen die Währung mit $substr
in einen String umwandeln und $toInt(
oder $toDouble
, oder $convert
was auch immer zu Ihrem Fall passt) im $project
stage und $out
als Ihre letzte Stufe der Aggregation. $out
schreibt das Ergebnis der Aggregationspipeline in den angegebenen Sammlungsnamen.
Aber seien Sie vorsichtig, wenn Sie $out
verwenden . Laut offizieller Mongodb-Dokumentation:
Versuchen Sie Folgendes:
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"
}
])
Sie müssen möglicherweise allowDiskUse : true
verwenden als Option für die Aggregationspipeline, da Sie viele Dokumente haben und die Mongodb-Grenze von 16 MB möglicherweise überschritten wird.
Vergessen Sie nicht, collection_name
zu ersetzen mit dem tatsächlichen Sammlungsnamen und fügen Sie alle erforderlichen Felder in $project
ein Stufe, die Sie in der Sammlung benötigen. Und bitte überprüfen Sie den Wert zuerst mit einer anderen temporary_collection
oder einfach durch Entfernen der $out-Stufe und Überprüfen des Ergebnisses von aggregation
Leitung.
Ausführliche Informationen finden Sie in der offiziellen Mongodb-Dokumentation $out , $toInt , $toDouble , $convert, $substr und allowDiskUse .