空值之和为 return 空值

Sum of nulls to return null

制作方法 sum(array[*].value) 到 return NULL 如果所有值都为 NULL 或没有值?

目前 return两种情况下都是 0

我能想到的最好的是

first_document(array[*].value) ? sum(array[*].value) : null

需要迭代两次集合

有更好的方法吗?

如何使用 FOR 循环而不是 shorthand 表示法并过滤掉空值?然后我们可以检查是否还有零元素和 return null:

LET tmp = (FOR elem IN array FILTER elem.value != null RETURN elem)
RETURN LENGTH(tmp) ? SUM(tmp) : null

您也可以使用 array inline expression,但字符数大致相同:

LET tmp = arr[* FILTER CURRENT.value != null RETURN CURRENT.value]
RETURN LENGTH(tmp) ? SUM(tmp) : null