我想按月份使用sinatra的mongomapper筛选数据。
在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相当于什么呢?
我忘记了这篇文章。
我的解决方案:
# 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
随时发布更好的解决方案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句