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 }

以上是 MongoDB中如何查询值大于平均值的文档? 的全部内容, 来源链接: utcz.com/z/322586.html

回到顶部