2011-05-04 56 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我需要把所有的屬性都歸入1項。我的意思是,這個查詢將返回我的盒子是這樣的:

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

的查詢條件的被尊重,因爲這是真的,attrib1 =「x」和attrib2 =「Y」那個盒子裏,但不幸的是沒有在同一個項目內。

這就是我所需要的,框的列表包含在同一項目中具有所有期望值的項目。

我該怎麼做?我不知道?我希望我自己清楚,我真的不知道該怎麼解釋我的問題

感謝,

亞歷

+0

重新標記。這不是一個嵌入式軟件問題 - 請參閱標記wiki以獲取更多說明。 – 2011-05-04 13:14:10

回答

相關問題