我想根据嵌入文档的内容选择一个文档集合。如何查询嵌入式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