我有一个名为Questions的MongoDB Collection,其中包含如下所示的JSON对象:
{
"_id" : "49902cde5162504500b45c2c",
"question" : "Who are you?",
"category" : "Personal"
}
我试图一次选择一些数字,比如说1000个。一旦我处理了这1000个条目,我想继续选择接下来的1000个条目,依此类推。
使用MongoDB有一种简单的方法来执行此类操作吗?我对这项技术有点新意。如果没有,有没有人有一个很好的方式这样做?我正在使用Java驱动程序,如果这有所不同。
谢谢,
克里斯科弗特
答案 0 :(得分:3)
另一种方法是:
设置上次处理的ID = 0
从id> gt的问题中选择[上次处理的ID]按ID限制1000
这比选择所有内容并跳过()超过结果集更有效。
或者在记录中添加“已处理”标志,这样您就可以区分哪些记录需要处理,然后查询处理的位置= 0。
答案 1 :(得分:1)
您应该可以使用skip()
(和limit()
),但请注意,因为这是一个昂贵的查询。
因此,假设您的收藏被称为“问题”,例如:
db.questions.find().limit(1000)
db.questions.find().skip(1000).limit(1000)
将返回前1000个然后返回第1000个问题。