如何在聚合查詢中獲得 $avg 的“-無窮”結果?


為此,您可以使用 aggregate()。讓我們首先建立一個包含無窮小值(-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 }

以下是使用 find() 方法顯示某個集合中所有文件的查詢 −

> db.demo5.find();

這將產生以下輸出 &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 }

以下是針對聚合查詢中 $avg 獲取“-無窮”結果的查詢。基於 seq,找到了平均值。這將得到 -Infinity −

> db.demo5.aggregate([{$group:{"_id":"$seq", "average" : {$avg : "$Value"}}}]);

這將產生以下輸出 −

{ "_id" : 20, "average" : 55 }
{ "_id" : 10, "average" : -Infinity }

更新日期:2020 年 4 月 1 日

127 次瀏覽

開啟你的 職業

透過完成該課程獲取認證

開始學習
廣告
© . All rights reserved.