http://www.mongodb.org /display/DOCS/Comment+créer+un+champ+d'incrémentation+automatique
La première approche consiste à conserver les compteurs dans un document annexe :
L'autre approche consiste à boucler de manière optimiste et à gérer le code d'erreur de clé double de 11000 en continuant et en incrémentant l'identifiant pour le cas limite des collisions. Cela fonctionne bien à moins qu'il n'y ait des écritures simultanées élevées dans une collection spécifique.
Mais soyez conscient de l'avertissement sur cette page :
Autres éléments à prendre en compte :
- Horodatage - unique long mais non incrémenté (basé sur l'époque)
- Approche hybride :les applications ne doivent pas nécessairement choisir une option de stockage.
- Développez votre mécanisme d'identification en fonction d'éléments tels que le client, les parties date/heure, etc., pour lesquels vous générez et gérez les collisions. Selon le schéma, les collisions peuvent être beaucoup moins probables. Pas nécessairement incrémentiel, mais unique et doté d'un modèle lisible bien défini.