MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Trasforma i dati di MongoDB su Trova

È possibile fare qualsiasi cosa lato server con mongodb. Il motivo per cui di solito sentirai "no" è che sacrifichi troppa velocità perché abbia un senso in circostanze normali. Una delle forze principali dietro PyMongo, Mike Dirolf con 10gen, ha un buon post sul blog sull'utilizzo di javascript lato server con pymongo qui:http://dirolf.com/2010/04/05/stored-javascript-in-mongodb-and-pymongo.html . Il suo esempio riguarda la memorizzazione di una funzione javascript per restituire la somma di due campi. Ma potresti facilmente modificare per restituire la prima lettera del campo del tuo nome utente. Il succo sarebbe qualcosa del tipo:

db.system_js.first_letter = "function (x) { return x.charAt(0); }"

Comprendi prima, però, che mongodb è fatto per essere davvero bravo a recuperare i tuoi dati, non proprio bravo a elaborarli. La raccomandazione (vedi ad esempio 50 suggerimenti e trucchi per gli sviluppatori mongodb di Kristina Chodorow di Oreilly) è di fare ciò a cui Andrew ha brevemente accennato sopra:creare una prima colonna di lettere e restituirla invece. Qualsiasi elaborazione può essere eseguita in modo più efficiente nell'applicazione.

Ma se ritieni che anche interrogare il nome completo prima di restituire il nome completo[0] dalla tua "vista" sia un rischio per la sicurezza, non devi fare tutto nel modo più veloce possibile. Per un po' avevo evitato la riduzione della mappa in mongodb a causa di tutte le preoccupazioni del pubblico sulla velocità. Quindi ho eseguito la mia prima riduzione della mappa e ho ruotato i pollici per 0,1 secondi mentre elaborava 80.000 documenti da 10.000. Mi rendo conto che nello schema delle cose, è minuscolo. Ma illustra che solo perché è negativo per un enorme sito Web subire un calo delle prestazioni su alcune elaborazioni lato server, non significa che sarebbe importante per te. Nel mio caso, immagino che mi ci vorrebbe un po' più di tempo per migrare su Hadoop piuttosto che mangiare solo 0,1 secondi ogni tanto. Buona fortuna con il tuo sito