MongoDB-аргумент $size должен быть массивом, но имеет тип: EOO
попытка создать источник данных MongoDB с помощью icCube. Идея в том, чтобы вернуть размер массива в качестве нового поля. Что-то вроде :
$project:
{
"people": 1,
"Count myFieldArray" : {$size : "$myFieldArray" }
}
но я получаю для некоторых записей следующую ошибку:
The argument to $size must be an Array, but was of type: EOO
есть ли способ, что размер равен 0, если поле пустое или не является массивом (избавляемся от ошибок) ?
1 ответов
можно использовать $ifNull
здесь оператора. Кажется, что поле либо не является массивом, либо нет данной ошибки:
{ "$project": {
"people": 1,
"Count": {
"$size": { "$ifNull": [ "$myFieldArray", [] ] }
}
}}
также вы можете проверить для $type
в своем $match
в случае, если они действительно существуют, но не являются массивом.