繁体   English   中英

Nodejs Mongoose - 一个数据库调用 = 按不同标准排序的两个独立数组

[英]Nodejs Mongoose - One databse call = two separate arrays sorted by different criteria

我正在使用 Nodejs(express) + MongoDB 并想询问是否有一种方法可以访问数据库以获取一组文档(为简单起见,我们假设博客文章具有喜欢计数和查看计数属性),首先按喜欢对结果进行排序count a 将其存储在 array1 中,然后不再次调用数据库,按视图计数对其进行排序并将其存储在 array2 中,因此结果将是:

  • 1个数据库访问
  • array1:按喜欢计数排序的博客文章
  • array2:按浏览次数排序的博客文章

所以基本上我不想链接排序查询,但我希望输出是 2 个数组,每个数组按不同的条件排序。 非常感谢。

您可以使用$facet进行聚合,如下所示:

db.blog.aggregate([
   {
      $facet: {
        sortByLikeCounts: [ { $sort: { likeCounts: -1 }} ],      // likeCounts is field name which is used to save total counts of like 
        sortByViewCounts: [ { $sort: { viewCounts: -1 }} ]       // viewCounts is field name which is used to save total counts of view
      }
   }
])

结果,您将得到两个按不同查询排序的单独数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM