我正在使用Nodejs(express)+ MongoDB,想问一下是否有一种方法可以访问数据库以获取一组文档(为简单起见,假设博客帖子的点击计数和查看计数属性),并对结果进行排序首先按喜欢将其存储在array1中,然后不调用databse再次按视图计数对其进行排序并将其存储在array2中,因此结果将是:
所以基本上我不想链接排序查询,但我希望输出是2个数组,每个数组按不同的条件排序。非常感谢。
答案 0 :(得分:1)
您可以使用$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
}
}
])
结果是您将获得两个单独的数组,并按不同的查询排序。