如何在猫鼬的集合中找到文档项的平均值?
Posted
技术标签:
【中文标题】如何在猫鼬的集合中找到文档项的平均值?【英文标题】:How can I find Average of a document item in a collection in mongoose? 【发布时间】:2021-02-06 05:17:48 【问题描述】: const scoreSchema = new mongoose.Schema(
rollno:
type:Number,
unique: true
,
first_round:
type:Number,
validate(value)
if(value > 10)
throw new Error('Maximum marks is 10')
,
second_round:
type:Number,
validate(value)
if(value > 10)
throw new Error('Maximum marks is 10')
,
third_round:
type:Number,
validate(value)
if(value > 10)
throw new Error('Maximum marks is 10')
,
total:
type:Number,
);
我需要找到所有合并记录的 first_round
、second_round
等的平均值。我怎样才能做到这一点?我无法弄清楚我们如何在猫鼬中找到平均值。任何帮助将不胜感激。
【问题讨论】:
你能分享你想要的输出格式吗? 我想分别求出每一轮的平均值。不仅针对特定的卷号,而且针对所有记录,基本上针对猫鼬中的所有卷号。比如说我们有 1 到 10 的卷号,即 10 条记录,我们必须分别找到所有 10 个卷号的 first_round 和 second_round 和 third_round 的平均值。 【参考方案1】:如果您想要合并所有记录的平均值,请尝试aggregate(),
$group
null 并使用 $avg 平均所有字段
let result = await ModelName.aggregate([
// match condition to match for specific rollno
// $match: rollno: $in: [1,2] ,
$group:
_id: null,
total_average: $avg: "$total" ,
first_round: $avg: "$first_round" ,
second_round: $avg: "$second_round" ,
third_round: $avg: "$third_round"
], allowDiskUse: true );
console.log(result);
Playground
【讨论】:
我想分别求出每一轮的平均值。不仅针对特定的卷号,而且针对所有记录,基本上针对猫鼬中的所有卷号。 谢谢,知道了。最后一个问题。如何在 console.log 中显示此输出? 通过这样做,我只得到了一个巨大的对象,看起来像: AggregationCursor _readableState: ReadableState objectMode: true, highWaterMark: 16, buffer: BufferList head: null, tail: null,长度:0 , 用属性allowDiskUse: true
更新答案试试看,但我不确定你到底错过了什么或做错了。
这是我的代码:imgur.com/a/TWIaXhU,我做错了什么?【参考方案2】:
您可以使用mongoDB aggregation
实现此目的。在aggregation
中,您可以使用$group
来评估所有记录的每一轮的平均值。
db.sales.aggregate(
[
$group:
_id: "$item",
first_round_av: $avg: "$first_round" ,
second_round_av: $avg: "$second_round" ,
third_round_av: $avg: "$third_round" ,
]
)
【讨论】:
我想分别求出每一轮的平均值。不仅针对特定的卷号,而且针对所有记录,基本上针对猫鼬中的所有卷号。比如说我们有 1 到 10 的卷号,即 10 条记录,我们必须分别找到所有 10 个卷号的 first_round 和 second_round 和 third_round 的平均值。 @pranshuverma 我已经更新了我的答案。这是为所有记录分别获取所有轮次平均值的最简单方法。以上是关于如何在猫鼬的集合中找到文档项的平均值?的主要内容,如果未能解决你的问题,请参考以下文章