mongodb mongodb-query aggregation-framework iccube

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.