È prassi comune in MongoDB utilizzare nomi di chiavi brevi per risparmiare spazio. Ad esempio, si potrebbe voler usare "fn" invece di "first_name"Alias di campo con Mongoide e Rotaie
Tuttavia nella tua app, sei fregato se usi "fn" dappertutto. È troppo brutto In particolare per Rails, c'è un modo semplice per specificare un alias quando si dichiara un campo in Mongoid?
Inoltre, qualcuno sa di progetti di esempio open source che utilizzano Mongoid?
Grazie!
Non è un problema di velocità, è un problema di spazio. C'è una grande differenza tra la memorizzazione di "first_name" e "fn" un miliardo di volte (~ 10 GB vs ~ 2 GB). Se utilizzi hardware di base, lo spazio è economico, ma se utilizzi hardware di qualità server, lo spazio è costoso. Vedi: http://blog.boxedice.com/2010/10/23/on-shortened-field-names-in-mongodb/ – Intelekshual
L'unica volta che vedrei necessario accorciare i nomi dei campi è quando: 1) Valori piccoli, 2) Dataset molto grande, 3) Schema molto loose (campi ad hoc). Dati questi 3 casi, concordo sul fatto che la sovrascrittura dei metodi di elaborazione abbia senso (come indicato di seguito). Anche in questo caso dovrai tenerlo a mente anche per le query, quindi stai producendo un codice un po 'più complicato. Ad esempio, se ho un dataset veramente grande, valori piccoli, ma il mio schema non cambierà quasi mai (come le statistiche di tracciamento), probabilmente opterei per postgresql invece di mongodb. –
Abbastanza sicuro che la gente di 10Gen (la compagnia dietro MongoDB) non sia d'accordo [1] con l'opinione di Dave Rapin. Non solo, come menzionato @Intelekshual, puoi realizzare notevoli risparmi di spazio su disco, ma Mongo ha bisogno di memorizzare il tuo working set e gli indici in memoria. Documenti più piccoli significa che è possibile archiviarne altri in memoria, per non parlare delle prestazioni che aumentano il guadagno del codice app non dovendo gestire più documenti mongo gonfiati [1]: http://docs.mongodb.org/manual/faq/developers/# how-do-i-optimize-storage-use-for-small-documents – xentek