具有不同返回结果量的mongo中的执行时间是相同的

时间:2018-05-24 10:24:23

标签: mongodb pymongo

我用pymongo查询mongodb以获得日期范围时间戳内的结果。

我的查询如下:

start_TW = time.time()

startforTF = datetime(2016, 6, 1, 5, 0, 0).isoformat()
endforTF = datetime(2016, 6, 2, 5, 0, 0).isoformat()

pipeline=  [{"$match": {"properties.timestamp": {"$gte": startforTF, "$lte": endforTF}}},
            { "$project" : {"properties.vessel_hash":"$properties.vessel_hash", "geometry.coordinates":"$geometry.coordinates", "_id":0}}]

fetchPosOfShipInTimewindow = db.samplecol.aggregate(pipeline, allowDiskUse=True) 

end_TW = time.time()
print "Time to fetch all positions inside time frame: ", (end_TW - start_TW)

查询似乎工作正常,但我观察到一些奇怪的事情。在一天的范围内获取结果的执行时间与十天范围内的执行时间几乎相同。

对于一天的范围,结果是:

- 执行时间 - > 0,45

- 从数据集返回的记录:1.142.316

在十天的范围内,结果如下:

- 执行时间 - > 0,32

- 从数据集返回的记录:14.309.233

我不明白mongo是如何实现这一目标的。 mongo缓存了一些结果吗?

0 个答案:

没有答案