dem*_*mas 6 ruby-on-rails mongodb mongoid
我有一个模特:
class SimpleAction
include Mongoid::Document
field :set_date, :type => Date
Run Code Online (Sandbox Code Playgroud)
我收集了一些数据:
{"_ id":ObjectId("4f6dd2e83a698b2518000006"),"name":"lost","notes":"","set_date(1i)":"2012","set_date(2i)":"3"," set_date(3i)":"25","set_date(4i)":"13","set_date(5i)":"57","duration":15,"todo":"4"}
您可以在五个字段中看到mongoid存储日期 - set_date(ni).
我有两个问题:
如何通过mongo控制台客户端中的set_date字段过滤数据?像这样的东西:
db.simple_actions.find({ set_date : { "$lte" : new Date() } })
Run Code Online (Sandbox Code Playgroud)
我的查询没有返回任何数据.
如何通过Rails控制器中的set_date字段过滤数据?像这样的东西:
@simple_actions = SimpleAction.where(:set_date => { '$lte' => Date.today })
Run Code Online (Sandbox Code Playgroud)rfu*_*duk 14
我建议不要使用Date,而是DateTime:
field :set_date, :type => DateTime
Run Code Online (Sandbox Code Playgroud)
现在不仅将它存储在1个字段中,如下所示:
"set_date" : ISODate("2012-03-14T17:42:27Z")
Run Code Online (Sandbox Code Playgroud)
但Mongoid会正确处理您想要的各种查询转换:
SimpleAction.where( :set_date => { :$lte => Date.today } )
Run Code Online (Sandbox Code Playgroud)