使用 Mongo 排序

And*_*rdi 2 sorting mongoose mongodb node.js express

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

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

这是我的租赁架构:

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

这是我到目前为止所尝试过的(但不起作用。)

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

    });
});
Run Code Online (Sandbox Code Playgroud)

Pat*_*ham 5

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

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