我需要一个调度程序作业,每隔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"}]}
感谢。
答案 0 :(得分:3)
如果你跟踪你所在的迭代,你可以使用类似的东西:
db.users.find()。极限(100).skip(1200)
另一种解决方案可能是为每个条目添加“已处理”标志。将其默认为false。然后当你得到下一个处理为false的100时,做一个findAndModify,并修改它们现在为真。