如何在 MongoDB 中選擇高於平均值


在 MongoDB 中使用 aggregate() 來選擇高於平均值的文件。若要查詢平均值,請在 MongoDB 中使用 $avg。

讓我們建立一個包含文件的集合 -

> db.demo552.insertOne({values:10});{
   "acknowledged" : true, "insertedId" : ObjectId("5e8e3b1c9e5f92834d7f05ea")
}
> db.demo552.insertOne({values:50});{
   "acknowledged" : true, "insertedId" : ObjectId("5e8e3b1f9e5f92834d7f05eb")
}
> db.demo552.insertOne({values:40});{
   "acknowledged" : true, "insertedId" : ObjectId("5e8e3b289e5f92834d7f05ec")
}

在集合中使用 find() 方法顯示所有文件 -

> db.demo552.find();

這將生成以下輸出 -

{ "_id" : ObjectId("5e8e3b1c9e5f92834d7f05ea"), "values" : 10 }
{ "_id" : ObjectId("5e8e3b1f9e5f92834d7f05eb"), "values" : 50 }
{ "_id" : ObjectId("5e8e3b289e5f92834d7f05ec"), "values" : 40 }

以下是選擇高於平均值的文件的查詢 -

> var findAvg = db.demo552.aggregate([
...    { "$group": { "_id": "null", Average: { "$avg": "$values"} }}
... ]).toArray()[0]["Average"];
> db.demo552.find({ "values": { "$gt": findAvg } })

這將生成以下輸出 -

{ "_id" : ObjectId("5e8e3b1f9e5f92834d7f05eb"), "values" : 50 }
{ "_id" : ObjectId("5e8e3b289e5f92834d7f05ec"), "values" : 40 }

更新於: 14-5 月-2020

397 次瀏覽

開啟你的 職業生涯

完成課程並獲得認證

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