Trying to create a MongoDB data source with icCube. The idea is to return the size of an array as a new field. Something like :
$project: { "people": 1, "Count myFieldArray" : {$size : "$myFieldArray" } }
But I'm getting for some records the following error :
The argument to $size must be an Array, but was of type: EOO
Is there a way that size is 0 if the field is empty or not an array (getting rid of the error) ?
You can use the $ifNull
operator here. It seems the field is either not an array or not present by the given error:
{ "$project": { "people": 1, "Count": { "$size": { "$ifNull": [ "$myFieldArray", [] ] } } }}
Also you might want to check for the $type
in your $match
in case these do exist but are not an array.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With