2010-09-15 29 views
17

Estoy usando el código de Ruby para calcular la suma de la matriz devuelta por Mongoid.¿Tiene Mongoid Map/Reduce?

Pero tal vez utilizando Map/Reduce puede ser más rápido, excepto que yo no veo ninguna documentación de MapReduce en mongoid.org y Google para

map reduce site:mongoid.org 

no da ningún resultado tampoco. (O el uso de MapReduce o Map/Reduce)

Hay documentos en el sitio de MongoDB

map reduce site:mongodb.org 

pero necesitan utilizar MapReduce con Mongoid también.

Respuesta

21

Puede utilizar MapReduce con Mongoid como ya se podía a través del controlador de Ruby directamente:

# Post is a Mongoid model... 
Post.collection.map_reduce(map_function, reduce_function, options) 

Para algunos ejemplos de hacer MapReduce en el controlador de Ruby, ver this blog post por Kyle banquero (mantenedor del Rubí Controlador MongoDB).

+0

hm, entonces esto es para ir por una ruta de nivel inferior usando el controlador Ruby para MongoDB ... ¿no usando Mongoid per se? Tal vez si Mongoid lo tiene directamente, puede ser mejor ... (¿tiene Mongoid implica que también tienes el controlador de Ruby o tiene que estar separado?) En este momento, si uso 'Analytics.collection' devuelve un' Mongoid :: Objeto de colección. 'Analytic.collection.methods.grep/map /' => '[" mapreduce "," map_reduce "]', por lo que se define map_reduce. –

+2

Mongoid se ejecuta sobre el controlador Ruby, y utilizando el método anterior solo pasa las funciones al controlador Ruby. – PreciousBodilyFluids

+0

entonces tal vez Mongoid puede poner eso en sus documentos formales ¿eh? que Mongoid admite Map/Reduce utilizando el controlador Ruby. –