Nodejs Mongoose
我正在使用Nodejs(express)+ MongoDB,并想问一下是否有办法访问数据库以获取一组文档(为简单起见,我们假设博客帖子中有喜欢计数和视图计数属性),首先按喜欢对结果进行排序在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
}
}
])
结果,您将得到两个按不同查询排序的独立数组。