【发布时间】:2019-04-09 04:33:03
【问题描述】:
让我们使用这个简单的集合col 和 2 个文档:
{
"_id" : ObjectId("5ca4bf475e7a8e4881ef9dd2"),
"timestamp" : 1551736800,
"score" : 10
}
{
"_id" : ObjectId("5ca4bf475e7a8e4881ef9dd3"),
"timestamp" : 1551737400,
"score" : 12
}
为了访问最后一个时间戳(第二个文档的那个),我首先做了这个请求
a = db['col'].find({}).sort("_id", -1)
然后a[0]['timestamp']
但是由于这个集合中会有很多文档,我认为只请求具有限制功能的最后一个会更有效,比如
a = db['col'].find({}).sort("_id", -1).limit(1)
然后
for doc in a:
lastTimestamp = doc['timestamp']
因为只有一个,我可以在循环中声明变量。
所以三个问题:
- 如果我继续使用第一个请求并获取 dic 中的第一个元素,我是否需要担心内存/速度问题?
- 在使用限制请求时,是否有更智能的方法来访问光标的第一个元素而不是使用循环?
- 还有其他方法可以获取我不知道的时间戳吗?
谢谢! Python 3.6 / Pymongo 3.7
【问题讨论】:
标签: python mongodb-query pymongo