0

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

我有一个主文档 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 的“任何”销售额的帐户。我只希望帐户在同一个文档上具有两个条件都为真的销售。
有什么建议吗?

4

1 回答 1

4

正如经常发生的那样,在提出问题后进行更多调查会找到解决方案。elem_match 方法似乎可以满足我的需要。
这就是我想出的;

Account.elem_match(sales: {:sale_date.gt => Date.today - 4.years, :sale_price.gt => 0}) 
于 2013-01-02T18:56:39.013 回答