Computer >> Máy Tính >  >> Lập trình >> MongoDB

Cần tổng hợp theo giờ và $ trung bình trong MongoDB


Để tổng hợp, hãy sử dụng tổng hợp () trong MongoDB. Nó tính toán các giá trị tổng hợp cho dữ liệu trong một tập 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.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")
}

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.demo544.find();

Điều này sẽ tạo ra kết quả sau -

{ "_id" : ObjectId("5e8e1f029e5f92834d7f05ce"), "DueTime" : ISODate("2020-01-10T12:10:20Z"), "Amount" : 100 }
{ "_id" : ObjectId("5e8e1f089e5f92834d7f05cf"), "DueTime" : ISODate("2020-01-12T12:00:00Z"), "Amount" : 500 }
{ "_id" : ObjectId("5e8e1f109e5f92834d7f05d0"), "DueTime" : ISODate("2020-01-12T12:10:20Z"), "Amount" : 900 }

Sau đây là truy vấn để tổng hợp theo một giờ và $ trung bình -

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

Điều này sẽ tạo ra kết quả sau -

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