gpt4 book ai didi

javascript - MongoDB:按日期排序将空字段视为较早的日期

转载 作者:行者123 更新时间:2023-11-30 18:04:58 29 4
gpt4 key购买 nike

Mongoose 模式包括:

{
dueDate: { type: Date, required: false }
}

我的目标是获取按截止日期排序的文档,其中最快的日期位于顶部,然后是其余没有截止日期的文档。我的问题是不需要截止日期,因此没有截止日期的文档会排在具有有效日期的文档之上。

这就是我对其进行排序的方式(node.js 和 mongoose.js):

query.sort({ dueDate: 'asc' });

我主要是在寻找一种内置的方式来做到这一点;我已经通过组合查询实现了一个 hack。

最佳答案

这里有一个日期类型的解决方法,每个这样的日期字段需要 1 个额外的字段来排序(这个解决方案也可以用于数字)

  1. 在此新字段中存储非空日期(或数字的 -ve)的负纪元

  2. 按日期升序排序意味着按此 -ve 纪元降序。 Null 将在末尾,因为这是 MongoDB 按降序对数据进行排序的方式。实际日期(或数字)字段将按升序显示,末尾为空值。

  3. 如果需要空值,并且在按降序对日期(或数字)进行排序时,请按原始日期(或数字)字段而不是 -ve 纪元排序。

关于javascript - MongoDB:按日期排序将空字段视为较早的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16018601/

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