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 .