MongoDB - The argument to $size must be an Array, but was of type: EOO

匿名 (未验证) 提交于 2019-12-03 02:49:01

问题:

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) ?

回答1:

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.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!