过滤Mongoid子文档中的多个字段

时间:2013-01-02 17:35:05

标签: ruby-on-rails mongoid

我想查询具有包含两个值的子文档的文档。

我有一个主文档Account,它包含没有或多个销售子文档。每笔销售都有sale_price和sale_date。我只想要在过去4年中拥有sale_price大于0且sale_date的销售子文档的帐户。

这是我尝试过的;

Account.and("sales.sale_date" => {"$gt" => Date.today - 4.years}, "sales.sale_price" => {"$gt" => 0})

这将返回过去4年内具有“任何”销售额并且具有sale_price>的“任意”销售的帐户。 0.我只希望只有账户在同一份文件上有两个标准的销售 有什么建议?

1 个答案:

答案 0 :(得分:4)

正如经常发生的那样,在提出问题之后进行更多调查会产生解决方案。 elem_match方法似乎做我需要的。
这是我想出来的;

Account.elem_match(sales: {:sale_date.gt => Date.today - 4.years, :sale_price.gt => 0})