Se você deseja converter a coleção inteira, pode fazê-lo com o pipeline de agregação.
Você precisa converter a moeda para string usando
$substr
e $toInt(
ou $toDouble
, ou $convert
o que for mais adequado ao seu caso) no $project
palco e $out
como seu último estágio de agregação. $out
grava o resultado do pipeline de agregação no nome de coleção fornecido. Mas tenha cuidado ao usar
$out
. De acordo com a documentação oficial do mongodb:Tente isto:
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"
}
])
talvez seja necessário usar
allowDiskUse : true
como uma opção para o pipeline de agregação, pois você tem muitos documentos e pode ultrapassar o limite de 16 MB do mongodb. Não se esqueça de substituir
collection_name
com o nome da coleção real e inclua todos os campos obrigatórios no $project
estágio que você precisa na coleção. E verifique o valor primeiro com uma temporary_collection
diferente ou apenas removendo o estágio $out e verificando o resultado de aggregation
canalização. Para obter informações detalhadas, leia a documentação oficial do mongodb $out , $toInt , $toDouble , $convert, $substr e allowDiskUse .