node.js - 使用 Mongo 排序

标签 node.js mongodb sorting express mongoose

我正在尝试对 MongoDB 数据进行排序。我有一个如下所示的租赁架构,其中包括一个“特色”项目。如果特色项目设置为 true(用户可以在自己的终端上执行此操作),我希望特色项目显示在其余租赁上方。换句话说,我需要将 features = true 的 mongo 数据排序到顶部。

我如何更改下面的代码来做到这一点?

这是我的租赁架构:

var rentalsSchema = new mongoose.Schema({
    featured: {
        type: Boolean,
        default: false
    },
    Title: String,
});

这是我迄今为止尝试过的方法(但不起作用。)

router.get('/rentals', function(req, res) {
    db.collection('rentals').find().sort({
        featured: 1
    }).toArray(function(err, items) {

    });
});

最佳答案

.sort({featured: 1 }) 更改为 .sort({featured: -1 })。您希望 featured 值为 true 的内容排在 false 为 false 的内容之前。

看起来按 bool 字段的默认排序从 false 变为 true(可能是因为 0 和 1 数值以及默认升序)。为了演示这一点,请打开 Chrome 开发工具控制台,输入 [true, false, false, true].sort(),结果为 [false, false, true, true].

关于node.js - 使用 Mongo 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45132592/

相关文章:

javascript - 如何构建 Node CLI 应用程序

node.js - 为什么WebRTC丢弃音频

node.js - 如何找到 Node 的内置模块目录?

javascript - 如何使用 vue.js 对表格中的日期进行排序

c++ - 如何计算快速排序期间发生的数组比较次数?

javascript - NestJs:使用类验证器验证对象数组

python - 在 PyMongo 中使用 $not $in $regex

mongodb - Mongodb java driver - 带客户端的资源管理

node.js - 更新双重嵌套数组 MongoDB

algorithm - 什么时候合并排序优先于快速排序?