Đố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 }