Nếu bạn muốn chuyển đổi toàn bộ bộ sưu tập, bạn có thể thực hiện điều đó với Aggregation pipe.
Bạn cần chuyển đổi đơn vị tiền tệ sang chuỗi sử dụng $substr và $toInt( hoặc $toDouble hoặc $convert bất cứ điều gì phù hợp với trường hợp của bạn) trong $project giai đoạn và $out là giai đoạn tổng hợp cuối cùng của bạn. $out ghi kết quả của đường ống tổng hợp vào tên bộ sưu tập đã cho.
Nhưng hãy cẩn thận khi sử dụng $out . Theo tài liệu mongodb chính thức:
Hãy thử điều này:
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"
}
])
bạn có thể cần sử dụng allowDiskUse : true như một tùy chọn cho kênh tổng hợp, vì bạn có rất nhiều tài liệu và nó có thể vượt qua giới hạn mongodb 16MB.
Đừng quên thay thế collection_name với tên bộ sưu tập thực tế và bao gồm tất cả trường bắt buộc trong $project giai đoạn mà bạn cần trong bộ sưu tập. Và vui lòng kiểm tra lại giá trị trước bằng một temporary_collection khác hoặc chỉ bằng cách loại bỏ giai đoạn $ out và kiểm tra kết quả của aggregation đường ống dẫn.
Để biết thông tin chi tiết, hãy đọc tài liệu mongodb chính thức $ out , $ toInt , $ toDouble , $ chuyển đổi, $ substr và allowDiskUse .