我正在做一个Volt应用程序,需要比较时间。使用如下模型:
class Punchcard < Volt::Model
field :punchtime
end我可以使用时间对象保存模型的实例,以查看是否将它们作为ISODate()对象持久化到ISODate()对象中。目前为止一切都很好。
当我想使用小于标准的方法从数据库中查询时,我可以看到Volt和volt正在调用:
store.punchcards.where({"punchtime" => {"$lt" => punchtime}}).then...(其中“拳打脚踢”是一个时间对象)进入这个Mongo查询:
db.punchcards.find({"punchtime": {"$lt": "2015-07-08T10:25:05-0700"}})即使应该返回结果,也不会返回任何结果。
当我在保存朋奇卡模型的实例时跟踪insert调用时,我看到时间对象没有字符串化:
[INFO] task StoreTasks#save in 11.557ms
with args: "punchcards", ["punchcards", "[]"], {"user_id"=>"925b0eb84bc3d2185d1c693a", "punchtime"=>2015-07-08 16:38:49 -0700, "punch_status"=>"Out", "id"=>"75c1a3c35016d30895d38d28"}因此,由于时间对象是在find调用上字符串化的,而不是在保存调用上,所以Mongo正在对find进行字符串比较。
如何使用Volt中的$lt / $gt和时间对象查询Mongo?
发布于 2015-07-09 16:27:16
这个应该固定在师父身上。试着逃避师父,让我知道它是否有效。
gem 'volt', github: 'voltrb/volt'https://stackoverflow.com/questions/31305811
复制相似问题