2011-05-04 5 views
2

포함 된 문서의 내용을 기반으로 문서 모음을 선택하려고합니다.임베디드 mongo 문서 모음을 쿼리하여 기준 목록이있는 특정 문서를 추출하는 방법은 무엇입니까?

내 모델은 다음과 같습니다

class box 
    embeds_many :items 
    field :stuff 
end 

class item 
    field :attrib1 
    field :attrib2 
    field :array 
end 

을 그래서 그것의 항목의 속성에 상자 기지의 컬렉션을 추출하기 위해 다음과 같이 조회 할 수 있습니다이 구조 :

Box.any_in(:'items.array' => [:value1, :value2]).where(:'items.attrib1'=> 'x', :'items.attrib2' => 'y').order_by([:stuff, :asc]) 

그래서이 쿼리 제공 내 속성 1 = x 및 속성 2 = y 및 값 1 또는 값 2를 포함하는 항목이 포함 된 상자 모음

이것은 모두 훌륭하지만 p 문제는 모든 속성을 하나의 항목에 묶어야한다는 것입니다. 사실 그 attrib1 = 'X'와 attrib2 = 'Y'그 상자에,하지만 불행히도 아니기 때문에 쿼리의

box 
{ 
    items 
    [ 
     {array => [value1], attrib1 => "x", attrib2 => "z"} 
     {array => [value1], attrib1 => "h", attrib2 => "y"}   
    ] 
} 

기준의의가 존중 : 내 말은이 쿼리는 다음과 같이 상자 나 반환 것입니다 동일한 항목 내에서

그게 내가 원하는, 상자의 목록은 동일한 항목 내에 원하는 모든 값을 가진 항목이 포함되어 있습니다.

어떻게하면됩니까? 나는 전혀 모른다? 나는

알렉스

+0

태그가 지정되었습니다. 이것은 임베디드 소프트웨어 질문이 아닙니다. 자세한 내용은 태그 위키를 참조하십시오. –

답변

관련 문제