首页 > 解决方案 > 使用 sort() 提供 repos 列表

问题描述

我正在制作一个函数,它将过滤一些数据并根据计数显示结果并根据值对数据进行排序。特别是它使用 sort() 和 limit() 方法。我的 limit() 方法很简单并且工作正常,但我的 sort() 方法不起作用。它正在运行,但不是我想要的方式。当我使用 -1 时,它确实颠倒了顺序。但无论我搜索什么(使用 1),我都会得到相同的列表。有人可以帮我解决这个问题吗?这是用于查询 mongodb,(您知道,我正在查询 github 以获取 repos 列表)。

这是我的代码:

       let fetch = callback => {
         let cb = (err, repos) => { callback(repos) };
         Repo.find(cb).sort({forks: 1}).limit(25);
       }

到目前为止,当这是最后一种方法 - .exec(cb) 时没有任何区别。当这是最后一个方法时,我在 find 方法中没有 cb,但函数的作用相同。

标签: javascriptmongodbcallback

解决方案


所以最后我在我的 mongodb 模式中发现了一个不正确的行。这是我为了确保我的回购是独一无二的。正确的代码是:id: {type: Number, unique: true}。另请注意,我正在写:repo_id:repo.repo_id。这是不正确的,因为它必须是:id:id。现在排序、限制和唯一性都可以正常工作。


推荐阅读