2012-04-23 15 views

risposta

1

Ci sono alcuni modi:

1- Supponendo che si sta tentando di fornire un ID univoco a ogni post del blog. Perché non sovrascrivere il campo "_id" dei tuoi documenti nella raccolta blog? documento di esempio potrebbe essere:

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

Si dovrà guardare fuori per un metodo per generare un id AutoIncrement però, che è abbastanza facile. Tuttavia questo tipo di chiavi primarie non è raccomandato. http://www.mongodb.org/display/DOCS/How+to+Make+an+Auto+Incrementing+Field

2- Let campo _id rimanga come è, e additionaly archiviano una chiave 'blogid', che è un numero intero, si dovrà eseguire ensureIndex sul 'campo blogid` anche se per rendere l'accesso da blogid veloce. Il sovraccarico dell'archiviazione sarebbe minore, dato che memorizzerai un keyname e un intero in più nel tuo documento.

documento di esempio potrebbe essere:

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

funziona il metodo di gonna blogid intorno al scalabilit problemi o mi troverei ancora gli stessi problemi del metodo 1? – deltanovember

+0

@deltanovember metodo blogid funziona bene. L'unico sovraccarico è l'archiviazione extra per i dati e l'indice sulla chiave blogid. Suggerirei anche di nominare questo campo il più piccolo possibile, dato che occupa spazio per documento, "offerta" dovrebbe andare bene. – DhruvPathak

1

Ci sono diversi progetti su GitHub come https://github.com/dodo/node-slug e https://github.com/stipsan/String.Slugify.js ma si concentrano sul rendere gli URL validi con le stringhe (di solito l'oggetto del post o il titolo dell'articolo). Non ho visto nessuno che prendesse un numero casuale e alcuni come produrre un numero casuale casuale (?) E univoco.

Personalmente, ho solo un campo token sul mio oggetto post che contiene un valore univoco che è più breve dell'utilizzo dell'ID DB direttamente (e un po 'più sicuro). Se stai usando Mongoose, il token può essere generato automaticamente agganciando l'evento pre "Salva" sul tuo modello Mongoose.

2

L'id in MongoDB è in realtà un valore esadecimale per convertire in un valore numerico è possibile utilizzare il seguente codice per la ricerca di valore numerico nel database come 1, 2 , 3 .. e questo codice permette di convertire tale valore in esadecimale appropriato

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

dove article_collection è l'oggetto di collezione

Problemi correlati