Đối với điều này, bạn có thể sử dụng tổng hợp (). Trước tiên, chúng ta hãy tạo một bộ sưu tập với các tài liệu có vlaue là -infinity -
> db.demo5.insertOne({ "_id" : 100, "seq" : 10, "Value" : -Infinity }); { "acknowledged" : true, "insertedId" : 100 } > db.demo5.insertOne({ "_id" : 101, "seq" : 10, "Value" : 50 }); { "acknowledged" : true, "insertedId" : 101 } > db.demo5.insertOne({ "_id" : 102, "seq" : 20, "Value" : 60 }); { "acknowledged" : true, "insertedId" : 102 } > db.demo5.insertOne({ "_id" : 103, "seq" : 20, "Value" : 50 }); { "acknowledged" : true, "insertedId" : 103 }
Sau đây là truy vấn để 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.demo5.find();
Điều này sẽ tạo ra kết quả sau &miuns;
{ "_id" : 100, "seq" : 10, "Value" : -Infinity } { "_id" : 101, "seq" : 10, "Value" : 50 } { "_id" : 102, "seq" : 20, "Value" : 60 } { "_id" : 103, "seq" : 20, "Value" : 50 }
Đây là truy vấn để nhận kết quả "-Infinity" cho $ avg trong một truy vấn tổng hợp. Trên cơ sở seq, chúng tôi đã tìm thấy giá trị trung bình. Điều này dẫn đến -Infinity -
> db.demo5.aggregate([{$group:{"_id":"$seq", "average" : {$avg : "$Value"}}}]);
Điều này sẽ tạo ra kết quả sau -
{ "_id" : 20, "average" : 55 } { "_id" : 10, "average" : -Infinity }