http://www.mongodb.org /display/DOCS/Come+creare+un+campo+automatico+incrementante
Il primo approccio è mantenere i contatori in un documento laterale:
L'altro approccio è quello di eseguire il ciclo in modo ottimistico e gestire il codice di errore della chiave duplicata di 11000 continuando e incrementando l'id per il caso limite di collisioni. Funziona bene a meno che non vi sia un'elevata simultaneità nelle scritture in una raccolta specifica.
Ma attenzione all'avviso su quella pagina:
Altre cose da considerare:
- Timestamp - unico lungo ma non incrementale (base su epoch)
- Approccio ibrido:le app non devono necessariamente scegliere un'opzione di archiviazione.
- Crea il tuo meccanismo di identificazione basato su cose come cliente, parti di data/ora ecc... per cui generi e gestisci le collisioni. A seconda dello schema, le collisioni possono essere molto meno probabili. Non necessariamente incrementale, ma è unico e ha uno schema leggibile ben definito.