3
$ COND检查这是我的文档的集合操作,如何做在同一阵列中的空值,而分组
{
"_id": "58aecaa3758fbff4176db088",
"actualEndDate": "2017-02-27T00:00:00.000Z",
"Details": [
{
"projectId": "58a585f6758fbff4176dadb9",
}
]
},
{
"_id": "58aecac8758fbff4176db08b",
"actualEndDate": "2017-03-12T00:00:00.000Z",
"Details": [
{
"projectId": "58a585f6758fbff4176dadb9",
}
]
},
{
"_id": "58aecac8758fbff4176db08c",
"actualEndDate": null,
"Details": [
{
"projectId": "58a585f6758fbff4176dadb9",
}
]
}
我需要一群这些和我的查询中,我需要找到$max
“仅当所有“actualEndDate”字段不为空时,才使用条件“actualEndDate”。
我想是这样的,
{
$group:
{
_id: '$Details.projectId',
actualEndDate:
{
$cond: {
if: { $ne: [ $actualEndDate, null] },
then: $actualEndDate, else: null
}
}
}
}
,这样我可以得到像
{
"projectId": "58a585f6758fbff4176dadb9",
"actualEndDate": null,
}
预期的结果如果样品不含{ "_id": "58aecac8758fbff4176db08c" }
记录,那么我希望得到的结果有actualEndDate
作为最大的其他两个文件
{
"projectId": "58a585f6758fbff4176dadb9",
"actualEndDate": "2017-03-12T00:00:00.000Z",
}
任何他lp表示赞赏。
嗨这里的数组进行排序,$ first会给出日期,因为空值在排序后的日期之后。 – arunraj414
如果有“actualEndDate”为空,我需要null作为“actualEndDate” – arunraj414
@ arunraj414看到我更新的答案 –