【问题标题】:Sorting with Mongo使用 Mongo 进行排序
【发布时间】:2017-12-21 07:17:07
【问题描述】:

我正在尝试对我的 MongoDB 数据进行排序。我有一个如下所示的租赁模式,其中包括一个“特色”项目。如果特色项目设置为 true(用户可以在最后执行此操作),我希望特色项目显示在其余租赁之上。换句话说,我需要将 feature = 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) {

    });
});

【问题讨论】:

  • 1 代表 asc -1 代表降序,因此如果您想在开始时将特征值设为 1,则应将排序对象替换为 {featured: -1}

标签: node.js mongodb sorting express mongoose


【解决方案1】:

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

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

【讨论】:

  • 有趣。我会试一试然后回来。谢谢!
  • 完美运行。谢谢!
猜你喜欢
  • 2018-11-15
  • 2019-10-12
  • 2015-08-06
  • 1970-01-01
  • 2014-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多