4

我有一个带有索引的集合:created_at(在这种特殊情况下应该是一个日期)

从rails保存条目然后按日期检索的正确方法是什么?

我正在尝试类似的东西:

模型:字段 :created_at, :type => 时间

脚本:

Col.create(:created_at => Time.parse(another_model.created_at).to_s

Col.find(:all, :conditions => { :created_at => Time.parse(same thing) })

它没有返回任何东西

4

2 回答 2

3

Mongo 驱动程序和各种 ORM 可以很好地处理 Date、Time 和 DateTime 对象;没有理由将它们转换为字符串。

Col.create(:created_at => another_model.created_at)

并发现:

Col.all(:created_at => another_model.created_at)

您不想设置字符串,因为日期在内部存储为 BSON Date 对象,并被索引和搜索。如果将它们保存为字符串,您将无法有效地进行大于/小于/范围比较之类的操作。

于 2010-11-24T16:35:05.807 回答
1
Col.create(:created_at => Time.parse(another_model.created_at).to_s)

该行会将您的时间对象作为字符串传递,将其作为时间对象to_s发送到您的 ORM(MongoMapper 或 Mongoid)中的类型解析层。这是我能看到的唯一会导致它无法工作的错误。

于 2010-11-24T15:54:15.193 回答