按最接近当前日期猫鼬的顺序对文档进行排序

时间:2019-05-16 13:06:10

标签: node.js mongodb express mongoose

我不知道如何从最接近日期到当前日期对文档进行排序。 我的模型如下所示:

...
  when: {
    type: Date,
    required: true
  },
...

这是我尝试的:

MatchModel.find({when: { $gte: new Date() }})

1 个答案:

答案 0 :(得分:0)

您可以使用$addFields$subtract计算差异,然后在该字段上运行$sort

MatchModel.aggregate([
    {
        $addFields: {
            currentDateDiff: {
                $subtract: [ new Date(), "$when" ]
            } 
        }
    },
    {
        $sort: {
            currentDateDiff: 1
        }
    }
])