sql >> Base de Datos >  >> NoSQL >> MongoDB

Transforme los datos de MongoDB en Find

Es posible hacer casi cualquier cosa del lado del servidor con mongodb. La razón por la que generalmente escuchará "no" es que sacrifica demasiada velocidad para que tenga sentido en circunstancias normales. Una de las principales fuerzas detrás de PyMongo, Mike Dirolf con 10gen, tiene una buena publicación de blog sobre el uso de javascript del lado del servidor con pymongo aquí:http://dirolf.com/2010/04/05/javascript-almacenado-en-mongodb-y-pymongo.html . Su ejemplo es para almacenar una función javascript para devolver la suma de dos campos. Pero puede modificar fácilmente para devolver la primera letra de su campo de nombre de usuario. La esencia sería algo como:

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

Sin embargo, primero comprenda que mongodb está hecho para ser realmente bueno en la recuperación de sus datos, no realmente bueno para procesarlos. La recomendación (ver por ejemplo 50 consejos y trucos para desarrolladores de mongodb de Kristina Chodorow por Oreilly) es hacer lo que Andrew aludió brevemente a hacer arriba:hacer una columna con la primera letra y devolverla en su lugar. Cualquier procesamiento se puede hacer de manera más eficiente en la aplicación.

Pero si cree que incluso consultar el nombre completo antes de devolver el nombre completo [0] desde su 'vista' es un riesgo de seguridad demasiado grande, no necesita hacer todo de la manera más rápida posible. Había evitado map-reduce en mongodb por un tiempo debido a todas las preocupaciones del público sobre la velocidad. Luego ejecuté mi primer map reduce y jugué con los pulgares durante 0,1 segundos mientras procesaba 80.000 documentos de 10k. Me doy cuenta en el esquema de las cosas, eso es diminuto. Pero ilustra que el hecho de que sea malo para un sitio web masivo tener un impacto en el rendimiento en algún procesamiento del lado del servidor, no significa que le importe a usted. En mi caso, me imagino que me llevaría un poco más de tiempo migrar a Hadoop que comer esos 0,1 segundos de vez en cuando. Buena suerte con tu sitio