2015-01-12 2 views
1

나는 작업중인 유성우 컬렉션이 있습니다.서브 필드가 존재하는지 여부를 확인하여 유성우 컬렉션 쿼리하기

이 컬렉션의 모든 개체에는 개체 배열 인 필드가 있습니다. 이 개체 배열은 주 컬렉션의 모든 개체에 대해 동일하지 않습니다. 때로는이 필드에 2 개의 개체가 있고 때로는 3 개 정도의 개체가 있습니다.

내 쿼리에서 배열의 이러한 개체 중 특정 필드가 포함되어 있는지 확인하고 내 주 컬렉션의 개체 만 반환하는지 확인하고 싶습니다.

이 쿼리는 어떻게 작성합니까? 문서 감안할 때

+0

문의하는 문서의 샘플과 지금까지 시도한 내용을 포함하십시오. –

답변

2

: 위젯 컬렉션

{ 
    array: [ 
    { 
     optionalField: "" 
     otherField: "" 
    } 
    ] 
} 

,

Widgets.find({'array.optionalField': {$exists : true }}) 

는 optionalField 존재하는 모든 위젯 문서를 반환합니다.

예제에서 얻은 것처럼 Mongo '$ exists'쿼리 연산자는 그 필드가 포함 된 문서 만 선택합니다 (그렇지 않은 경우 위조 여부는 불문합니다).

관련 문제