一般的に、はい。単調なフィールド、理想的にはインデックス付きのフィールドがある場合は、それに沿って歩くことができます。たとえば、タイプObjectId
のフィールドを使用している場合 主キーとして、またはCreatedDate
がある場合 または何か、あなたは単に$lt
を使うことができます クエリを実行し、固定数の要素を取得してから、$lt
を使用して再度クエリを実行します 最小の_id
の またはCreatedDate
前のバッチで遭遇しました。
厳密な単調な動作と非厳密な単調な動作に注意してください。$lte
を使用する必要がある場合があります。 キーが厳密でない場合は、デュープで2回実行しないようにします。 _id
以降 フィールドは一意です。ObjectIds
常に厳密に単調です。
あなたがそのような鍵を持っていない場合、物事はもう少しトリッキーです。 'インデックスに沿って'を繰り返すことができます(名前、ハッシュ、UUID、Guidなどのインデックスが何であれ)。これも同様に機能しますが、トラバースを開始する前に、見つけた結果が挿入されたかどうかがわからないため、スナップショットを作成するのは困難です。また、トラバーサルの開始時にドキュメントが挿入されると、それらは失われます。