Per Sammaye, det ser ikke ud til, at der er en "korrekt" måde at gøre dette på. Min løsning var at oprette en sekvens som beskrevet på mongo-webstedet og blot tilføje et 'seq'-felt til hver post i min samling. Nu har jeg et unikt felt, som er pålideligt sorterbart at opdatere på.
Pålidelig sortering er vigtig her. Jeg skulle bare sortere på det autogenererede _id, men jeg indså hurtigt, at naturlig rækkefølge IKKE er det samme som stigende rækkefølge for ObjectId's (fra denne side det ser ud til, at strengværdien har forrang over objektværdien, som matcher den adfærd, jeg observerede i testen). Det er også fuldt ud muligt for en post at blive flyttet til disk, hvilket gør den naturlige rækkefølge upålidelig til sortering.
Så nu kan jeg forespørge for posten med den mindste 'seq', som IKKE allerede er blevet opdateret for at få et inkluderende udgangspunkt. Dernæst forespørger jeg efter poster med 'seq' større end mit udgangspunkt og springer over (det er vigtigt at springe over, da 'seq'en kan være sparsom, hvis du fjerner dokumenter osv...) antallet af poster jeg vil opdatere. Sæt en grænse på 1 på den forespørgsel, og du har et ikke-inkluderende slutpunkt. Nu kan jeg udstede en opdatering med en forespørgsel på 'opdateret' =0, 'seq'>=mit udgangspunkt og
Her er trinene igen:
Temmelig smertefuldt, men det får arbejdet gjort.