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看到我更新的答案 –