Đối với chuyển đổi như vậy, hãy sử dụng tổng hợp (). Hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -
> db.demo335.insertOne({"Value":"45,67,78.0"}); { "acknowledged" : true, "insertedId" : ObjectId("5e522a1cf8647eb59e562091") } > db.demo335.insertOne({"Value":"17664,76,534.0"}); { "acknowledged" : true, "insertedId" : ObjectId("5e522a26f8647eb59e562092") } > db.demo335.insertOne({"Value":"8899,322,135,875.50"}); { "acknowledged" : true, "insertedId" : ObjectId("5e522a34f8647eb59e562093") } > db.demo335.insertOne({"Value":"1,533.07"}); { "acknowledged" : true, "insertedId" : ObjectId("5e522ab9f8647eb59e562094") }
Hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find () -
> db.demo335.find();
Điều này sẽ tạo ra kết quả sau -
{ "_id" : ObjectId("5e522a1cf8647eb59e562091"), "Value" : "45,67,78.0" } { "_id" : ObjectId("5e522a26f8647eb59e562092"), "Value" : "17664,76,534.0" } { "_id" : ObjectId("5e522a34f8647eb59e562093"), "Value" : "8899,322,135,875.50" } { "_id" : ObjectId("5e522ab9f8647eb59e562094"), "Value" : "1,533.07" }
Sau đây là truy vấn để chuyển đổi một chuỗi có dấu phẩy thành kép -
db.demo335.aggregate([ ... { $project: { ... data: { ... $convert: { ... input: { ... $reduce: { ... input: { ... $split: ['$Value', ','] ... }, ... initialValue: '', ... in: { ... $concat: ['$$value', '$$this'] ... } ... } ... }, ... to: 'double', ... onError: 0 ... } ... } ... }} ... ])
Điều này sẽ tạo ra kết quả sau -
{ "_id" : ObjectId("5e522a1cf8647eb59e562091"), "data" : 456778 } { "_id" : ObjectId("5e522a26f8647eb59e562092"), "data" : 1766476534 } { "_id" : ObjectId("5e522a34f8647eb59e562093"), "data" : 8899322135875.5 } { "_id" : ObjectId("5e522ab9f8647eb59e562094"), "data" : 1533.07 }