在限制范围内从db获取记录

时间:2014-05-30 12:43:01

标签: mongodb

假设我的数据库根据我的查询返回1000条记录。

我想要做的是使用相同的查询,获取前100条记录,然后获得下一条100,依此类推,直到我拥有所有1000条记录。

也就是说,我不想一次性完成所有100条记录。我需要100个批次。

或许这样的事情:

query = {
    '$from': 0,
    '$to': 100
}

第一个请求后跟

query = {
    '$from': 100,
    '$to': 200
}

用于下一个请求,依此类推。

我一次不想要所有1000个结果。我希望能够指定开始和结束计数,以便我批量获得结果 - 这可能在mongodb中吗?

1 个答案:

答案 0 :(得分:0)

您可以使用skiplimit进行查询。

例如......

db.myCollection.find().limit(100) //Get the first 100 records
db.myCollection.find().skip(100).limit(100) //Get the next 100 records

虽然这是一种昂贵的方法,但我更愿意获得所有1000并将它们“分开”在客户端。

这是两个方法文档的链接

http://docs.mongodb.org/manual/reference/method/cursor.skip/

http://docs.mongodb.org/manual/reference/method/cursor.limit/