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

Transform MongoDB-data på Find

Det er muligt at lave næsten alt på serversiden med mongodb. Grunden til, at du normalt vil høre "nej", er, at du ofrer for meget fart til, at det giver mening under almindelige omstændigheder. En af hovedkræfterne bag PyMongo, Mike Dirolf med 10gen, har et godt blogindlæg om brug af serverside-javascript med pymongo her:http://dirolf.com/2010/04/05/stored-javascript-in-mongodb-and-pymongo.html . Hans eksempel er lagring af en javascript-funktion for at returnere summen af ​​to felter. Men du kan nemt ændre for at returnere det første bogstav i dit brugernavnsfelt. Hovedessensen ville være noget i retning af:

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

Forstå dog først, at mongodb er lavet til at være rigtig god til at hente dine data, ikke rigtig god til at behandle dem. Anbefalingen (se f.eks. 50 tips og tricks til mongodb-udviklere fra Kristina Chodorow af Oreilly) er at gøre, hvad Andrew kortfattet hentydede til at gøre ovenfor:lav en kolonne med første bogstav og returner den i stedet. Enhver behandling kan udføres mere effektivt i ansøgningen.

Men hvis du føler, at selv at forespørge efter det fulde navn, før du returnerer det fulde navn[0] fra din 'visning', er en for stor sikkerhedsrisiko, behøver du ikke gøre alt på den hurtigst mulige måde. Jeg havde undgået kort-reducering i mongodb i et stykke tid på grund af alle de offentlige bekymringer om hastighed. Derefter kørte jeg min første kort-reducering og drejede mine tommelfingre i 0,1 sekunder, mens den behandlede 80.000 10.000 dokumenter. Jeg er klar over, at det er lille. Men det illustrerer, at bare fordi det er dårligt for et stort websted at få et præstationshit på en eller anden serversidebehandling, betyder det ikke, at det ville have nogen betydning for dig. I mit tilfælde forestiller jeg mig, at det ville tage mig lidt længere tid at migrere til Hadoop end bare at spise de 0,1 sekunder i ny og næ. Held og lykke med dit websted



  1. Kan du søge i andre modeller med instansmetoder i Mongoose?

  2. Hvordan bruger jeg en geospatial forespørgsel i 2.1 MongoDB C#-driveren?

  3. MongoDB tilgængelige forbindelser

  4. NodeJS tilbagekald efter flere async-funktioner i for-loop