sql >> Databáze >  >> NoSQL >> MongoDB

jak mohu automaticky zvýšit pole v mongodb pomocí kódu Java?

MongoDB automaticky vytvoří ID pro každý objekt do něj vložený. Nemusíte si vytvářet vlastní ID.

Pokud potřebujete zvyšující se celé číslo id, narazíte na nejrůznější problémy s distribuovanou synchronizací – ve skutečnosti je docela těžké najít správné řešení pro netriviální případy.

Vygenerování jedinečného ID nejjednodušším způsobem, který mě napadá:

  • umístěte index do sloupce id s jedinečným omezením.
  • chcete-li vložit dotaz na dokument do indexu pro nejvyšší číslo, přidejte 1 a použijte ji jako id.
  • pokud se vložení nezdaří kvůli opakování duplicitního indexu

Zahrnuje několik zpátečních cest, ale měl by být robustní a s indexem na místě docela rychle.

Máte-li pouze jedno místo, které je zapisuje, můžete ID proplatit v AtomicInteger lokálně a provést celý proces zpáteční cesty pouze v případě, že zjistíte kolizi a poté aktualizovat AtomicInteger.




  1. MongoDB, java.lang.NoSuchFieldError

  2. Najděte dokumenty s poli, které obsahují dokument s určitým polem

  3. Optimální složené indexy pro $exists :true (řídké indexy)

  4. Aktualizace pole Mongo nebo vložení jednoho dotazu