2013-07-11 56 views
0

我有以下数据:遍历光标偏移

​​

我想我的光标,可以说,文件开始在b并反复进行到底。

cursor.offset(_id: "b").each{ |doc| puts doc } 
#=> { _id: "baa" } 
#=> { _id: "bac" } 
#=> { _id: "bad" } 

至于在B树的MongoDB卖场指标应该能够以某种方式:)

+0

从哪个查询中获得光标? –

+0

没关系,这很容易:) – fl00r

回答

2

只要搜索所有文档> = “B”:

db.collection.find({ _id: { $gte: "b" } }); 

然后迭代结果集。

+0

它是如此明显,thx! – fl00r

1

@Dick答案很棒。另一种选择是使用$regex

db.collection.find({_id: {$regex: "^b"}}) 

注:$regex减少分解成$gte/$lte查询,如果使用^

+0

也不错) – fl00r

+0

虽然有效,但正则表达式的搜索速度并不像正常的$ gte – Derick

+0

@Derick Yup那样快,即使使用'^'也有小量开销(假设区分大小写)与普通的'$ gte'查询相比。这样的正则表达式查询本身简化为'$ gte'查询。 –