Py学习  »  MongoDB

mongodb-按顺序计算缺失索引的最有效方法

sami_analyst • 4 年前 • 636 次点击  

给定一个集合,其中有1.000.000个条目,每个条目都有自己的惟一属性,称为number,该属性被索引。我怎样才能有效地找到数字序列中的最小间隙。

一个简单的例子是一个索引序列,比如:1,2,3,4,6,7,10,在这里我想取回数字5,因为这是序列中丢失的最少的数字。

有没有一种不需要查询所有数字的方法(可能是聚合)。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/51505
 
636 次点击  
文章 [ 1 ]  |  最新文章 4 年前
willis
Reply   •   1 楼
willis    5 年前

一种方法是 cursor . 使用光标,可以手动遍历文档,直到找到符合条件的文档为止。

var cursor = db.coll.find({}).sort({number: 1});
var prev = null
while (cusor.hasNext()) {
  var curr = cursor.getNext()
  if (prev && prev.number + 1 !== curr.number) break;
  prev = curr;
}