【发布时间】:2019-07-13 07:17:20
【问题描述】:
我正在使用 Nodejs(express) + MongoDB,并想问是否有一种方法可以访问数据库以获取一组文档(为简单起见,假设博客文章具有喜欢计数和浏览计数属性),对结果进行排序首先通过喜欢计数将其存储在array1中,然后无需再次调用数据库,按视图计数对其进行排序并将其存储在array2中,因此结果将是:
- 1 个数据库访问权限
- array1:按赞数排序的博文
- array2:按浏览次数排序的博文
所以基本上我不想链接排序查询,但我希望输出是 2 个数组,每个数组按不同的标准排序。非常感谢。
【问题讨论】:
-
你的问题是什么?
-
可能我的做法是完全错误的(我不是那么有经验),但是如果每次数据库访问都消耗服务器资源,那么我认为最好搜索一次文档然后制作两个数组,每个数组按不同的排序标准与调用数据库两次,然后在第一次调用中按视图排序文档,第二次调用按喜欢排序,还是我错了?
-
直接从查询中获取排序后的数组array1,然后您可以使用developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… 从array1 创建array2。问题出在哪里?
-
我也是这么想的,但正如 mozilla 所说,.sort() 的速度和空间复杂度无法得到保证,所以我想的是 MongoDB 排序算法会比 javascript .sort 更快()。
标签: node.js database mongodb express mongoose