2011-05-04 68 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

回答

相关问题