MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Campo incrementale alla raccolta esistente

Bene, utilizzando il link che hai citato , preferirei utilizzare approccio alla raccolta dei contatori .

L'approccio alla raccolta dei contatori presenta alcuni inconvenienti, tra cui:

  • Genera sempre richieste multiple (due):una per ottenere il numero di sequenza, un'altra per eseguire l'inserimento utilizzando l'id ottenuto tramite la sequenza,
  • Se stai utilizzando le funzionalità di sharding di mongodb, un documento responsabile della memorizzazione di uno stato contatore potrebbe essere utilizzato molto e ogni volta raggiungerà lo stesso server.

Tuttavia dovrebbe essere appropriato per la maggior parte degli usi.

L'approccio che hai citato ("l'ottimista ciclo" ) non dovrebbe rompere l'IMO e non indovino perché hai un problema con esso. Comunque non lo consiglierei. Cosa succede se esegui il codice su più client mongo, se uno ha molta latenza e altri continuano a prendere ID? Non mi piacerebbe incontrare questo tipo di problema... Inoltre, ci sono almeno due richieste per operazione riuscita, ma nessun massimo di tentativi prima di un successo...