http://www.mongodb.org /display/DOCS/Jak+utworzyć+pole+automatyczne+przyrostowe+
Pierwszym podejściem jest przechowywanie liczników w dokumencie pobocznym:
Innym podejściem jest optymistyczna pętla i obsługa kodu błędu dup-key o wartości 11000 przez kontynuowanie i zwiększanie identyfikatora dla przypadku kolizji brzegowych. To działa dobrze, chyba że istnieje wysoka współbieżność zapisów w określonej kolekcji.
Pamiętaj jednak o ostrzeżeniu na tej stronie:
Inne rzeczy do rozważenia:
- sygnatura czasowa - unikalny długi, ale nie narastający (bazujący na epoce)
- Podejście hybrydowe – aplikacje niekoniecznie muszą wybierać jedną opcję przechowywania.
- Wymyśl mechanizm id oparty na takich elementach, jak klient, data/czas itp., dla których generujesz i obsługujesz kolizje. W zależności od schematu kolizje mogą być znacznie mniej prawdopodobne. Niekoniecznie inkrementacja, ale jest unikalna i ma dobrze zdefiniowany czytelny wzór.