MongoDB计算文档中两个字段之间的日期

时间:2017-07-22 20:16:31

标签: mongodb mongoose mongodb-query

我有一个集合,每个文档都有2个日期字段(开始日期/结束日期) 我想在最少30分钟内返回结束日期和开始日期之间差异的文档。 谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用具有单个$redact阶段的聚合,并使用$subtract来计算2个日期之间的差异:

var dateSchema = new mongoose.Schema({
    startDate: Date,
    endDate: Date
}, { collection: "dates" });

var DateModel = db.model('DateModel', dateSchema);

DateModel.aggregate({
    $redact: {
        $cond: {
            if: { $gte: [{ $subtract: ["$endDate", "$startDate"] }, 30 * 60 * 1000] },
            then: "$$KEEP",
            else: "$$PRUNE"
        }
    }
}, function(err, res) {
    console.log(res);
})