【问题标题】:PyMongo - order of sort and limit in the find() methodPyMongo - find() 方法中的排序和限制顺序
【发布时间】: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


【解决方案1】:

它会排序然后选择前 6 个

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-07
    • 1970-01-01
    • 2016-03-31
    • 1970-01-01
    • 2014-09-13
    • 1970-01-01
    相关资源
    最近更新 更多