检索mongodb中的下N个记录

时间:2013-09-24 17:22:33

标签: java mongodb indexing database nosql

我需要一个调度程序作业,每隔5分钟执行一次,并处理来自mongodb集合的下一条100条记录。它应该从首先插入的文档开始。因此,在第一次运行中,我可以按升序对数据进行排序,并获得前100个文档。但是对于连续运行,我如何检索下一个100条记录,给出最后处理的文档的对象ID? (我不知道如何在这里使用对象id,因为它是一个具有不同参数的生成字符串...我没有定义任何其他ID。)

如果这不是从大型数据集中检索mongodb记录的好方法,请提出更好的方法。

每个文档如下所示:

{ "_id" : { "$oid" : "51ff17c8e4b02969f18e72bb"} , "source_of_info" : "somesource" , 
"entityinfo" : [ { "user" : "Alfredo Vela Zancada" , "social_network_entity_id" : 
 364221775325822977 , "text" : "blah blah blah" , "created_at" : { "$date" : "2013-08-
 05T03:10:12.000Z"}}] , "relatedURLs" : [ { "url" : "http://t.co/swqP3FYQt5" 
 ,"expanded_url" : "http://ow.ly/nCkIS"}]}

感谢。

1 个答案:

答案 0 :(得分:3)

如果你跟踪你所在的迭代,你可以使用类似的东西:

db.users.find()。极限(100).skip(1200)

另一种解决方案可能是为每个条目添加“已处理”标志。将其默认为false。然后当你得到下一个处理为false的100时,做一个findAndModify,并修改它们现在为真。