ruby-on-rails – Mongoid查询中的日期

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – Mongoid查询中的日期前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个模特:
class SimpleAction
  include Mongoid::Document
  field :set_date,:type => Date

我收集了一些数据:

{ “_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() } })

我的查询没有返回任何数据.
>如何通过Rails控制器中的set_date字段过滤数据?像这样的东西:

@simple_actions = SimpleAction.where(:set_date => { '$lte' => Date.today })

解决方法

我建议不要使用Date,而是使用DateTime:
field :set_date,:type => DateTime

现在不仅将它存储在1个字段中,如下所示:

"set_date" : ISODate("2012-03-14T17:42:27Z")

但Mongoid会正确处理您想要的各种查询转换:

SimpleAction.where( :set_date => { :$lte => Date.today } )

猜你在找的Ruby相关文章