Création d'ID d'objets courts et uniques dans MongoDB
Je suis en train de faire une application similaire à instagram à l'aide de Rails ou de Mongoid. Je veux un ID unique que je peux utiliser dans une url comme http://instagr.am/p/DJmU8/
Quelle est la meilleure façon de le faire? Puis-je tirer d'une telle identité à partir de la valeur par défaut BFILS ObjectID Mongo crée?
source d'informationauteur John | 2011-05-11
Vous devez vous connecter pour publier un commentaire.
Vous pouvez essayer d'utiliser 4 premiers octets de ObjectID (ils représentent timestamp).
Mais, pour être sûr à 100%, il est préférable de produire un court unique id, par la mise en œuvre d'un compteur. Vous pouvez utiliser la collecte séparée pour maintenir la valeur actuelle de votre compteur.
Plus de détails sur les mongo du ObjectID structure peut être trouvé ici: http://www.mongodb.org/display/DOCS/Object IDs+
Comme alternative, vous pouvez convertir convertir hex string id représentation d'une représentation basée sur les 36 symboles (26 latine lettres + 10 chiffres). Il sera évidemment plus courte.
Il semble qu'il y a un rubis de la bibliothèque, qui peut faire de telles conversions http://rubyworks.github.com/radix/
Vous pouvez essayer de Mongoid::Token
https://github.com/thetron/mongoid_token
De la documentation:
Essayer gem https://github.com/jffjs/mongoid_auto_inc
Pourquoi ne pas utiliser dylang/shortid?
Dans la mangouste:
ou il suffit d'insérer directement:
La Hashids bibliothèque est conçue pour générer des Id comme ceci. Check it out ici ☞ https://github.com/peterhellberg/hashids.rb