Rails 确定嵌入文档的范围

Rails scoping embedded documents

我正在尝试通过这样做获得即将到期的图书列表:

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

但我需要将其限制为第一个嵌入文档...这会查询每本书的所有嵌入文档...

我是否可以通过 created_at 字段添加额外的查询来执行此操作?

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

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