MongoDB的sort()是否在O(1)时间内运行?

时间:2019-04-03 11:08:47

标签: mongodb indexing time-complexity

我一直在寻找如何从MongoDB集合中获取最大价值的方法,而且我发现大多数人都推荐 to sort first, and then get the first one from the result

通常,排序需要O(NlogN)时间,但是如果我要排序的字段已被索引,则应该花费更少的时间。

所以我的问题是,

  1. 正如我在标题中所写,MongoDB的sort()是否在O(1)时间内运行?
  2. 如果没有,MongoDB是否提供一种获取最大值的更快方法?

1 个答案:

答案 0 :(得分:0)

  

正如我在标题中所写,MongoDB的sort()是否在O(1)时间内运行?

不,MongoDB Documentation都没有提及。

  

如果没有,MongoDB是否提供一种获取最大值的更快方法?

不,尽管还有另一种使用$max来使用聚合管道的方法,但是它的性能不如$sort + $limit。引用文档

  

$ sort + $ limit内存优化:

     

当$ sort在$ limit之前并且   没有干预阶段可以修改文档数量,   优化程序可以将$ limit合并到$ sort中。这允许   $ sort操作仅在进行时保持前n个结果,   其中n是指定的限制,并确保MongoDB仅需要   在内存中存储n个项目。