コレクション全体を変換する場合は、集約パイプラインを使用して変換できます。
$substr
を使用して通貨を文字列に変換する必要があります および$toInt(
または$toDouble
、または$convert
$project
であなたのケースに合うものは何でも) ステージと$out
集約の最終段階として。 $out
集約パイプラインの結果を指定されたコレクション名に書き込みます。
ただし、$out
を使用するときは注意してください 。公式のmongodbドキュメントによると:
これを試してください:
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"
}
])
allowDiskUse : true
を使用する必要がある場合があります ドキュメントがたくさんあり、16MBのmongodb制限を超える可能性があるため、集約パイプラインのオプションとして。
collection_name
を置き換えることを忘れないでください 実際のコレクション名を使用し、$project
にすべての必須フィールドを含めます コレクションに必要なステージ。そして、最初に別のtemporary_collection
で値を再確認してください または、$outステージを削除してaggregation
の結果を確認するだけです。 パイプライン。
詳細については、mongodbの公式ドキュメント $out
をお読みください。 、 $ toInt
、 $ toDouble
、 $ convert、
$ substr
および