如何使用一个虚拟列在猫鼬中制作另一个虚拟列?

时间:2021-07-09 10:58:17

标签: node.js mongodb express mongoose

场景是,在我正在处理的 api 中,有一个故事端点,我必须在其中取视图数和评论数的平均值,并根据值对文档进行排序。所以我打算做的是创建一个虚拟列(现在我们称之为“分数”),它被设置为两个数字的平均值。但问题是,评论有一个不同的模型,其中每个评论都引用了它的故事。所以我已经实现了一个设置“commentCount”的虚拟列:

  StorySchema.virtual('commentCount', {
    ref: 'Comment',
    localField: '_id',
    foreignField: 'story',
    count: true,
  });

现在我的查询是,如何使用这个虚拟列来计算我的“分数”虚拟列。

更多细节,我之前尝试使用聚合并成功。但是我必须使用似乎不支持聚合的 mongoose-paginate-v2 库。如果您知道比我正在做的更好的方法,请随时向我推荐。

重点是我必须能够从另一个模型中收集 commentCount,并取其和 viewCount 的平均值并根据该平均值对文档进行排序。

0 个答案:

没有答案
相关问题