【发布时间】:2014-12-10 21:04:58
【问题描述】:
我正在尝试使用 PyMongo 选择按 Unix 时间排序的数据库中最近的 6 个整体。我想避免必须使用游标,所以一直使用 find() 方法中的参数。 Mongo 查询中所需的结果如下:
db.pings.find().sort({ serverTime: 1 }).limit(6)
在 PyMongo 中,我正在执行以下操作:
pings = pings.find({'sessionId':sessionId}, sort=[('serverTime', pymongo.DESCENDING)], limit=6)
我见过类似的问题(例如:pymongo sort() limit() different?),这些问题并没有专门针对 PyMongo。请有人向我确认,上面会在选择前 6 名之前对结果进行排序,而不是选择前 6 名然后排序?
谢谢,
山姆
【问题讨论】:
-
它应该选择前 6 个匹配结果,按服务器时间排序,而不是选择 6 个结果并按服务器时间排序。您是否看到了不同的行为?
-
@wdberkeley 我没有看到不同的行为,并且我进行了测试,但我只是想检查这是已定义的行为,而不是未定义的行为(即它现在可以作为某些事情的结果否则,但可能会在没有警告的情况下更改)。谢谢!
标签: python mongodb sorting pymongo