使用偏移量迭代光标

时间:2013-07-11 11:27:31

标签: mongodb cursor

我有以下数据:

{ _id: "aaa" }
{ _id: "aab" }
{ _id: "aav" }
{ _id: "baa" }
{ _id: "bac" }
{ _id: "bad" }

我想把光标放到b开始,然后迭代到最后。

伪代码

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

就MongoDB在B-Tree中存储索引而言,应该可能以某种方式:)

2 个答案:

答案 0 :(得分:2)

只需搜索所有文件> =“b”:

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

然后迭代结果集。

答案 1 :(得分:1)

@Derick回答很棒。另一种选择是使用$regex

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

注意: $regex如果使用$gte,请缩减为$lte / ^查询。