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

ต้องรวมเป็นรายชั่วโมงและ $avg ใน MongoDB


ในการรวม ให้ใช้ aggregate() ใน MongoDB จะคำนวณค่ารวมสำหรับข้อมูลในคอลเล็กชัน

ให้เราสร้างคอลเลกชันที่มีเอกสาร -

<ก่อนหน้า>> db.demo544.insertOne({"DueTime":new ISODate("2020-01-10 12:10:20"),Amount:100});{ "acknowledged" :true, "insertedId" :ObjectId ("5e8e1f029e5f92834d7f05ce")}> db.demo544.insertOne({"DueTime":new ISODate("2020-01-12 12:00:00"),Amount:500});{ "acknowledged" :true, "insertedId" " :ObjectId("5e8e1f089e5f92834d7f05cf")}> db.demo544.insertOne({"DueTime":new ISODate("2020-01-12 12:10:20"),Amount:900});{ "acknowledged" :true , "insertedId" :ObjectId("5e8e1f109e5f92834d7f05d0")}

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

> db.demo544.find();

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

{ "_id" :ObjectId("5e8e1f029e5f92834d7f05ce"), "DueTime" :ISODate("2020-01-10T12:10:20Z"), "Amount" :100 }{ "_id" :ObjectId("5e8e1f089ef05f92834"d ), "DueTime" :ISODate("2020-01-12T12:00:00Z"), "Amount" :500 }{ "_id" :ObjectId("5e8e1f109e5f92834d7f05d0"), "DueTime" :ISODate("2020-01- 12T12:10:20Z"), "จำนวนเงิน" :900 }

ต่อไปนี้เป็นแบบสอบถามที่จะรวมเป็นชั่วโมงและ $avg −

> db.demo544.aggregate( { "$group":{ "_id":{ "$hour":"$dueTime" }, "Amount":{ "$avg":"$Amount" } }} )

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

{ "_id" :null, "Amount" :500 }