我希望使用mongomapper为sinatra按月过滤数据。
在mongo控制台我会这样做
'Filter By January
db.document.find({$where : 'return this.date.getMonth() == 0'})
'Filter By July
db.document.find({$where : 'return this.date.getMonth() == 6'})
'Filter By December
db.document.find({$where : 'return this.date.getMonth() == 11'})
那么,mongomaper ODM的等价物是什么?
答案 0 :(得分:0)
我忘记了这篇文章。
我的解决方案:
# d is my date to filter
start_time = DateTime.strptime("#{d.year}-#{d.month}-01T00:00:00+00:00", '%Y-%m-%dT%H:%M:%S%z').to_time.utc
end_time = DateTime.strptime("#{d.year}-#{d.month}-#{d.day}T23:59:59+00:00", '%Y-%m-%dT%H:%M:%S%z').to_time.utc
Document.where(:date => {:$gt => start_time}).where(:date => {:$lte => end_time}).find_each do |doc|
#Do something with objectexpense.amount
end
随意发布更好的解决方案。