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

เหตุใดแบบสอบถามกลุ่ม MongoDB ของฉันจึงส่งคืน 0 เสมอในการแปลงแบบลอย จะแก้ไขได้อย่างไร?


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

> db.demo523.insertOne({"details":{values:"-0.45"}});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e89b7efb3fbf26334ef611f")
}

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

> db.demo523.find();

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

{ "_id" : ObjectId("5e89b7efb3fbf26334ef611f"), "details" : { "values" : "-0.45" } }

ต่อไปนี้เป็นแบบสอบถามที่ไม่ส่งผลให้ 0 ในการแปลงทศนิยม -

>db.getCollection('demo523').find({}).forEach( function(d)
... { d.details.values = parseFloat( d.details.values )
... db.getCollection('demo523').save(d)} );

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

> db.demo523.find();

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

{ "_id" : ObjectId("5e89b7efb3fbf26334ef611f"), "details" : { "values" : -0.45 } }