[英]Nodejs Mongoose - One databse call = two separate arrays sorted by different criteria
我正在使用 Nodejs(express) + MongoDB 并想询问是否有一种方法可以访问数据库以获取一组文档(为简单起见,我们假设博客文章具有喜欢计数和查看计数属性),首先按喜欢对结果进行排序count a 将其存储在 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.