Rails确定嵌入式文档的范围

时间:2015-03-17 22:22:33

标签: ruby-on-rails scope mongoid

我试图通过这样做获得即将出版的书籍清单:

scope :upcoming, lambda { where('books.date_due' => {'$lt' => Date.yesterday + 7.days, '$gt' => Date.today - 14.days})

但是我需要将它限制在第一个嵌入式文档中...这会查询每本书的所有嵌入文档......

我是否可以在created_at字段中添加其他查询来执行此操作?

1 个答案:

答案 0 :(得分:1)

embeds_many嵌入文档实际上只是一个带有一些Mongoid包装的哈希数组。这意味着您可以使用常用的数组符号来查看数组中的特定元素;特别是,你可以说:

where('books.0.date_due' => { ... })
#            ^ element zero is the first entry