ic3*_*ic3 50 mongodb mongodb-query aggregation-framework iccube
尝试使用icCube创建MongoDB数据源.我们的想法是将数组的大小作为新字段返回.就像是 :
$project:
{
"people": 1,
"Count myFieldArray" : {$size : "$myFieldArray" }
}
Run Code Online (Sandbox Code Playgroud)
但我得到一些记录以下错误:
The argument to $size must be an Array, but was of type: EOO
Run Code Online (Sandbox Code Playgroud)
如果字段为空或不是数组(摆脱错误),是否有一种方法大小为0?
Nei*_*unn 99
您可以在$ifNull此处使用运算符.看来该字段不是数组,也不是给定错误不存在:
{ "$project": {
"people": 1,
"Count": {
"$size": { "$ifNull": [ "$myFieldArray", [] ] }
}
}}
Run Code Online (Sandbox Code Playgroud)
您还可能要来检查$type你$match的情况下,这些确实存在,但不是一个数组.
chr*_*dam 10
从 MongoDB 3.2 及更高版本开始,您可以使用以下运算$isArray符来检查字段是否为数组,$cond以在评估时返回字段$isArray:
{ "$project": {
"people": 1,
"myFieldArrayCount": {
"$size": {
"$cond": [
{ "$isArray": "$myFieldArray" },
"$myFieldArray",
[]
]
}
}
}}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14679 次 |
| 最近记录: |