2012-04-23 49 views

Respuesta

1

hay algunas maneras:

1- Suponiendo que usted está tratando de proporcionar una identificación única a cada entrada del blog. ¿Por qué no sobrescribe el campo '_id' de sus documentos en la colección de blogs? documento de ejemplo sería:

{ "_id" : 122 , "content" : { "title: ..... } 

Tendrá que mirar hacia fuera para un método para generar un identificador autoincrement embargo, que es bastante fácil. Sin embargo, este tipo de claves principales no se recomiendan. http://www.mongodb.org/display/DOCS/How+to+Make+an+Auto+Incrementing+Field

2- Vamos al campo _id permanecer como está, y adicionalmente almacenar una clave 'blogid' que es un entero, que tendrá que ejecutar ensureIndex el 'campo blogid` aunque para que el acceso por blogid rápido. La sobrecarga de almacenamiento sería menor, ya que almacenará un nombre clave y un número entero más en su documento.

documento de ejemplo sería:

{ "_id" : xxxxxxxxxx ,"blogid" : 122, "content" : { "title: ..... } 
+0

¿el método de la falda blogid alrededor del scalabilit ¿Problemas o seguiría teniendo los mismos problemas que en el método 1? – deltanovember

+0

@deltanovember método de blogid funciona bien. La única sobrecarga es el almacenamiento adicional para los datos y el índice en la clave de blog. También sugeriría nombrar este campo lo más pequeño posible, ya que toma espacio por documento, 'bid' debería funcionar bien. – DhruvPathak

1

Hay un montón de proyectos diferentes en GitHub como https://github.com/dodo/node-slug y https://github.com/stipsan/String.Slugify.js, pero se centran en hacer URL válidas de cadenas (generalmente el asunto del asunto o título del artículo). No he visto ninguno que tome un número aleatorio y otro que produce un número aleatorio (?) Más corto y único.

Personalmente, solo tengo un campo de token en mi objeto de publicación que contiene un valor único que es más corto que simplemente usar el ID de DB directamente (y un poco más seguro). Si está utilizando Mongoose, el token se puede generar automáticamente enganchando el evento pre 'Guardar' en su modelo Mongoose.

2

El id en MongoDB es en realidad un valor hexadecimal para convertir esto en un valor numérico puede utilizar el código siguiente para buscar el valor numérico en la base de datos como 1, 2 , 3 .. y este código se convertirá ese valor en hexadecimal apropiado

article_collection.db.json_serializer.ObjectID.createFromHexString(id) 

donde article_collection es su objeto de colección

Cuestiones relacionadas