gpt4 book ai didi

node.js - Mongoose 首先按一个属性排序和限制,然后按另一个属性排序

转载 作者:可可西里 更新时间:2023-11-01 10:00:32 24 4
gpt4 key购买 nike

我怎样才能获得 count 最高的那 n 个数据集,但返回它们按名称排序?

我尝试了以下方法,但这不起作用。

db.Foo
.find()
.sort({'count': -1})
.limit(n)
.sort({'name': 1}) // does not work
.exec(...);

除了手动对返回的json数组进行排序,还有其他解决办法吗?

比如SQL中的子查询?

SELECT *
FROM
( SELECT *
FROM Foo
ORDER BY count DESC
LIMIT n
) AS tmp
ORDER BY name ASC ;

最佳答案

只要一个查询有多个这样的步骤,一个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(...);

关于node.js - Mongoose 首先按一个属性排序和限制,然后按另一个属性排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35115131/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com