node.js mongoose Aggregate介绍
2023-12-16 18:48:52
目录
简述
在 Mongoose 中,Aggregate 是用于执行 MongoDB 聚合操作的类。MongoDB 聚合操作是一种强大的数据处理工具,可以用于对集合中的文档进行变换和计算
通过Model.aggregate创建一个aggregate(Aggregate类的实例)
const aggregate = Model.aggregate()
Aggregate的原型方法
aggregate进行操作
对aggregate对象进行操作
aggregate.match({...})
aggregate.group({...})
aggregate.sort({...})
aggregate.project('...')
aggregate链式操作,因为Aggregate的原型方法返回的是this(aggregate实例自身)
aggregate.match({...}).group({...}).sort({...}).project('...')
或者通过传入pipeline参数
const aggregate = await Model.aggregate([
{
$match: { ... }
},
{
$group: { ... }
},
{
$sort: { ... }
},
{
$match: { ... }
}
]);
控制台打印aggregate查看所积累的pipeline操作
得到查询结果
也可通过async await的方式获得查询结果
//async try... catch
const resQuery = await aggregate
完整的操作,只是示例
const aggregate = Tour.aggregate([
{
$match: { ratingsAverage: { $gte: 4.5 } }
},
{
$group: {
_id: { $toUpper: '$difficulty' },
numTours: { $sum: 1 },
numRatings: { $sum: '$ratingsQuantity' },
avgRating: { $avg: '$ratingsAverage' },
avgPrice: { $avg: '$price' },
minPrice: { $min: '$price' },
maxPrice: { $max: '$price' }
}
},
{
$sort: { avgPrice: 1 }
},
{
$match: { _id: { $ne: 'EASY' } }
}
]);
const stats = await aggregate
文章来源:https://blog.csdn.net/SupperSA/article/details/135035399
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!