场景是,在我正在处理的 api 中,有一个故事端点,我必须在其中取视图数和评论数的平均值,并根据值对文档进行排序。所以我打算做的是创建一个虚拟列(现在我们称之为“分数”),它被设置为两个数字的平均值。但问题是,评论有一个不同的模型,其中每个评论都引用了它的故事。所以我已经实现了一个设置“commentCount”的虚拟列:
StorySchema.virtual('commentCount', {
ref: 'Comment',
localField: '_id',
foreignField: 'story',
count: true,
});
现在我的查询是,如何使用这个虚拟列来计算我的“分数”虚拟列。
更多细节,我之前尝试使用聚合并成功。但是我必须使用似乎不支持聚合的 mongoose-paginate-v2 库。如果您知道比我正在做的更好的方法,请随时向我推荐。
重点是我必须能够从另一个模型中收集 commentCount
,并取其和 viewCount
的平均值并根据该平均值对文档进行排序。