我想在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