MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment écraser les identifiants d'objet dans Mongo db lors de la création d'une application dans Sails

Attention  : l'identifiant Mongo doit être unique autant que possible pour bien évoluer. L'ObjectId par défaut est composé d'un horodatage, d'un ID de machine, d'un ID de processus et d'une valeur d'incrémentation aléatoire. Le laisser avec seulement ce dernier le rendrait sujet aux collisions.

Cependant, parfois, vous voulez vraiment embellir la valeur ObjectID sans fin (c'est-à-dire qu'elle doit être affichée dans l'URL après encodage ). Ensuite, vous devriez envisager d'utiliser une stratégie d'incrémentation atomique appropriée .

Remplacer l'exemple _id :

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

Création d'une séquence d'incrémentation automatique :

  • Utiliser la collection de compteurs :Fondamentalement, une collection séparée qui conserve la trace du dernier numéro de la séquence. Personnellement, j'ai trouvé plus cohérent de stocker la fonction findAndModify dans la collection system.js, bien qu'elle manque les capacités du contrôle de version.
  • Boucle optimiste

Modifier :

J'ai trouvé un problème dans lequel le propriétaire de sails-mongo a déclaré :

Il mentionne la première technique que j'ai ajoutée dans cette réponse :Utiliser la collection de compteurs . Dans le même numéro, lewins montre une solution de contournement.