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.