Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 时间窗口上的Mongo查询未返回预期结果_Ruby_Mongodb_Mongomapper - Fatal编程技术网

Ruby 时间窗口上的Mongo查询未返回预期结果

Ruby 时间窗口上的Mongo查询未返回预期结果,ruby,mongodb,mongomapper,Ruby,Mongodb,Mongomapper,我将此数据集存储在Mongo中。每个元素都有一个已创建的属性 MyModel.all => [#<MyModel _id: "bson_object10", created_at: 2014-04-04 16:19:29 UTC, type: "source", updated_at: 2014-04-04 16:20:12 UTC>, #<MyModel _id: "bson_object11", created_at: 2014-04-04 16:19:29

我将此数据集存储在Mongo中。每个元素都有一个已创建的属性

MyModel.all
=> [#<MyModel _id: "bson_object10", created_at: 2014-04-04 16:19:29 UTC, type: "source",     updated_at: 2014-04-04 16:20:12 UTC>,
 #<MyModel _id: "bson_object11", created_at: 2014-04-04 16:19:29 UTC, type: "source",  updated_at: 2014-04-04 16:20:12 UTC>,
 #<MyModel _id: "bson_object12", created_at: 2014-04-04 16:19:29 UTC, type: "source", updated_at: 2014-04-04 16:20:12 UTC>,
 #<MyModel _id: "bson_object20", created_at: 2014-04-04 16:19:30 UTC, type: "source", updated_at: 2014-04-04 16:20:12 UTC>,
 #<MyModel _id: "bson_object21", created_at: 2014-04-04 16:19:30 UTC, type: "source", updated_at: 2014-04-04 16:20:12 UTC>,
 #<MyModel _id: "bson_object22", created_at: 2014-04-04 16:19:30 UTC, type: "source", updated_at: 2014-04-04 16:20:12 UTC>,
 #<MyModel _id: "bson_object30", created_at: 2014-04-04 16:19:31 UTC, type: "source", updated_at: 2014-04-04 16:20:12 UTC>,
 #<MyModel _id: "bson_object31", created_at: 2014-04-04 16:19:31 UTC, type: "source", updated_at: 2014-04-04 16:20:12 UTC>,
 #<MyModel _id: "bson_object32", created_at: 2014-04-04 16:19:31 UTC, type: "source", updated_at: 2014-04-04 16:20:12 UTC>]
在这个时间窗口中,我希望使用以下查询检索mongodb中的前6个元素:

MyModel.where(
   :created_at.gte => Time.at(payload_range[:start_time].to_i).utc,
   :created_at.lte => Time.at(payload_range[:end_time].to_i).utc
).count()
=> 3
但我得到了前三个。由于某些原因,LTE未按预期工作,并且未包括协调世界时2014-04-04 16:19:30的元素。
我做错了什么


谢谢

我猜你在某个地方遇到了分数秒的问题

如果我查看MongoDB shell中的一个文档,我会看到如下内容:

"updated_at" : ISODate("2014-04-03T16:29:01.036Z"),
但当我从Rails控制台查看时,我看到:

updated_at: 2014-04-03 16:29:01 UTC
当然,
'2014-04-03T16:29:01.036'
updated_at: 2014-04-03 16:29:01 UTC
MyModel.where(
   :created_at.gte => Time.at(payload_range[:start_time].to_i).utc,
   :created_at.lt  => Time.at(payload_range[:end_time  ].to_i).utc + 1.second
)