MongoDB: el argumento para $ size debe ser una matriz, pero era del tipo: EOO
mongodb-query aggregation-framework (1)
Intentando crear una fuente de datos MongoDB con icCube . La idea es devolver el tamaño de una matriz como un nuevo campo. Algo como :
$project:
{
"people": 1,
"Count myFieldArray" : {$size : "$myFieldArray" }
}
Pero estoy obteniendo para algunos registros el siguiente error:
The argument to $size must be an Array, but was of type: EOO
¿Hay alguna manera de que el tamaño sea 0 si el campo está vacío o no es una matriz (eliminando el error)?
Puede usar el operador $ifNull
aquí. Parece que el campo no es una matriz o no está presente por el error dado:
{ "$project": {
"people": 1,
"Count": {
"$size": { "$ifNull": [ "$myFieldArray", [] ] }
}
}}
También es posible que desee comprobar el $type
en su $match
en caso de que existan, pero que no sean una matriz.