【发布时间】:2017-07-23 09:34:07
【问题描述】:
我有一个集合,每个文档都有 2 个日期字段(开始日期/结束日期) 我想返回结束日期和开始日期之间的差异至少在 30 分钟内的文件。 谢谢!
【问题讨论】:
标签: mongodb mongoose mongodb-query
我有一个集合,每个文档都有 2 个日期字段(开始日期/结束日期) 我想返回结束日期和开始日期之间的差异至少在 30 分钟内的文件。 谢谢!
【问题讨论】:
标签: mongodb mongoose mongodb-query
您可以使用单个 $redact 阶段的聚合并使用 $subtract 计算两个日期之间的差异:
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);
})
【讨论】: