반응형
MongoDB - $size 인수는 어레이여야 하지만 유형: EOO / missing
icCube를 사용하여 MongoDB 데이터 소스를 만드는 중입니다.이 아이디어는 배열 크기를 새 필드로 반환하는 것입니다.예를 들어 다음과 같습니다.
$project:
{
"people": 1,
"Count myFieldArray" : {$size : "$myFieldArray" }
}
그러나 일부 레코드에 대해 다음과 같은 오류가 발생합니다.
The argument to $size must be an Array, but was of type: EOO
필드가 비어 있거나 배열이 아닌 경우 크기가 0이 되는 방법이 있습니까(오류 제거)?
여기서 오퍼레이터를 이용하실 수 있습니다.필드가 배열이 아니거나 지정된 오류로 인해 표시되지 않는 것 같습니다.
{ "$project": {
"people": 1,
"Count": {
"$size": { "$ifNull": [ "$myFieldArray", [] ] }
}
}}
또, 어레이가 아닌 경우는, 에서 를 확인할 수도 있습니다.
MongoDB 3.2 이후에서는 를 사용하여 연산자와 함께 필드가 배열인지 여부를 확인하고 평가 시 필드를 반환할 수 있습니다.
{ "$project": {
"people": 1,
"myFieldArrayCount": {
"$size": {
"$cond": [
{ "$isArray": "$myFieldArray" },
"$myFieldArray",
[]
]
}
}
}}
대체 솔루션은 null이 있는 문서를 삭제하는 것입니다.
$match: {myFieldArray: { $elemMatch: { $exists: true } }}
또한 '$' 참조에 의해 $size 인수로 사용되는 문서 필드(여기서 "$myFieldArray")도 투영에 포함되어야 합니다.
$project:
{
"people": 1,
"myFieldArray":1,
"Count myFieldArray" : {$size : "$myFieldArray" }
}
언급URL : https://stackoverflow.com/questions/24201120/mongodb-the-argument-to-size-must-be-an-array-but-was-of-type-eoo-missing
반응형
'codememo' 카테고리의 다른 글
| 사용자 지정 주문 메타를 woocommerce 전자 메일로 호출합니다. (0) | 2023.03.04 |
|---|---|
| 오류 콜백에 사용할 AJAX 응답 본문을 가져오는 중 (0) | 2023.03.04 |
| Angular를 사용하는 방법선행 0을 가지도록 숫자를 포맷하는 JS 필터? (0) | 2023.02.27 |
| 디렉티브 스코프 인수를 사용한 디렉티브 부모 스코프의 콜 함수 (0) | 2023.02.27 |
| Next.js: ComponentWillMount vs. getInitialProps (0) | 2023.02.27 |