我想根據嵌入文檔的內容選擇一個文檔集合。如何查詢嵌入式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」那個盒子裏,但不幸的是沒有在同一個項目內。
這就是我所需要的,框的列表包含在同一項目中具有所有期望值的項目。
我該怎麼做?我不知道?我希望我自己清楚,我真的不知道該怎麼解釋我的問題
感謝,
亞歷
重新標記。這不是一個嵌入式軟件問題 - 請參閱標記wiki以獲取更多說明。 – 2011-05-04 13:14:10