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

Come sovrascrivere gli ID oggetto in Mongo db durante la creazione di un'app in Sails

Attenzione :Mongo id dovrebbe essere il più unico possibile per scalare bene. Il ObjectId predefinito è costituito da un timestamp, un ID macchina, un ID processo e un valore incrementale casuale. Lasciarlo solo con quest'ultimo lo renderebbe soggetto a collisioni.

Tuttavia, a volte si desidera abbellire il valore infinito di ObjectID (cioè da mostrare nell'URL dopo la encoding ). Quindi, dovresti prendere in considerazione l'utilizzo di una strategia di incremento atomico appropriata .

Sostituzione l'_id esempio:

db.testSOF.insert({_id:"myUniqueValue", a:1, b:1})

Creazione di una Sequenza di incremento automatico :

  • Utilizza raccolta contatori :Fondamentalmente una collezione separata che tiene traccia dell'ultimo numero della sequenza. Personalmente, ho trovato più coerente memorizzare la funzione findAndModify nella raccolta system.js, sebbene manca funzionalità del controllo della versione.
  • Ciclo ottimista

Modifica:

Ho trovato un problema in cui il proprietario di sails-mongo ha detto:

Menziona la prima tecnica che ho aggiunto in questa risposta:Usa raccolta contatori . Nello stesso numero, lewins mostra una soluzione alternativa.