Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

แบบสอบถาม MongoDB เพื่อแปลงสตริงด้วยเครื่องหมายจุลภาคเป็น double


สำหรับการแปลงดังกล่าว ให้ใช้ aggregate() ให้เราสร้างคอลเลกชันที่มีเอกสาร -

> 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"});{ "รับทราบ" :จริง "insertedId" :ObjectId("5e522a34f8647eb59e562093")}> db.demo335.insertOne({"Value":"1,533.07"});{ "acknowledged" :true, "insertedId" :ObjectId( "5e522ab9f8647eb59e562094")}

แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้วิธี find() -

> db.demo335.find();

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

{ "_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,pre533.07" } 

ต่อไปนี้เป็นแบบสอบถามเพื่อแปลงสตริงด้วยเครื่องหมายจุลภาคเป็นสองเท่า -

db.demo335.aggregate([... { $project:{... data:{... $convert:{... input:{... $reduce:{... input:{... ... $split:['$Value', ',']... },... initialValue:'',... in:{... $concat:['$$value', '$ $this']... }... }... },... ถึง:'double',... onError:0... }... }... }}... ]) 

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

{ "_id" :ObjectId("5e522a1cf8647eb59e562091"), "data" :456778 }{ "_id" :ObjectId("5e522a26f8647eb59e562092"), "data" :1766476534 }{ "_id" :ObjectId("fe2056eba34") , "data" :8899322135875.5 }{ "_id" :ObjectId("5e522ab9f8647eb59e562094"), "data" :1533.07 }