mongodb - mongodb在每个文档中查找三个键的最旧日期
问题描述
我有一个看起来像这样的文档架构:
{
status: String,
estimateDate: Date,
lostDate: Date,
soldDate: Date,
assignedDate: Date
}
使用此模式,所有三个日期都可以存在,并且它们都不存在。我需要检查所有三个,如果至少存在一个,则使用最旧的日期,如果不存在,则使用今天的日期。使用“返回”日期,从另一个键(assignedDate)获取天差。我已经想出了如何用一个日期做我想做的事,但不知道如何扩大它以包括所有三个键。以下是我拥有的一键工作代码。
在我的聚合管道 $project 阶段中,我执行以下操作:
days: {
$cond: {
if: {
$not: ["$date1"]
},
then: {
$floor: {
$divide: [
{
$subtract: [new Date(), "$assignedDate"]
},
1000 * 60 * 60 * 24
]
}
},
else: {
$floor: {
$divide: [
{
$subtract: [
"$estimateDate",
"$assignedDate"
]
},
1000 * 60 * 60 * 24
]
}
}
}
}