Tob*_*ias 2 mongoose mongodb node.js
如何获得计数最高的n个数据集,然后按名称返回它们?
我尝试了以下操作,但这不起作用。
db.Foo
.find()
.sort({'count': -1})
.limit(n)
.sort({'name': 1}) // does not work
.exec(...);
Run Code Online (Sandbox Code Playgroud)
除了手动排序返回的json数组之外,还有其他解决方案吗?
像SQL中的子查询?
SELECT *
FROM
( SELECT *
FROM Foo
ORDER BY count DESC
LIMIT n
) AS tmp
ORDER BY name ASC ;
Run Code Online (Sandbox Code Playgroud)
每当查询具有这样的多个步骤时,aggregate通常就需要管道:
db.Foo.aggregate([
// Sort all the doc on count, descending
{$sort: {count: -1}},
// Take the first n of those
{$limit: n},
// Resort those n docs on name
{$sort: {name: 1}}
]).exec(...);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1300 次 |
| 最近记录: |