我想在Invoice
模型中实现范围overdue
,以返回超过日期的所有发票,直到他们必须支付。我有字段invoice_date, :type => Date
和days_for_payment, :type => Integer
。根据Mongoid计算字段进行查询
在我以前的版本,它是建立在ActiveRecord的,我可以使用查询
Invoice.where("invoice_date + days_for_payment < ?", Date.today)
这个查询就这一DB侧的计算。
有没有办法让Mongoid完成同样的事情?或者是否有人知道一个好的解决方法(proc,lambda等)?
我用mongoid“2.4.12”
有没有更好的方式来操纵JS中的日期。从时代开始,所有事情都以毫秒为单位。但是,在你的特定情况下,当你存储':invoice_date'和':days_for_payment'时,你可以使用'before_validation'或'before_save'回调函数来存储':overdue_date':这样会更有效,因为你可以正常查询,用索引来表示(也是范围查询)。 – 2012-07-14 08:02:52