2010-09-15 23 views
17

Sto usando il codice Ruby per calcolare la somma dall'array restituito da Mongoid.Mongoid ha Map/Reduce?

Ma forse utilizzando Map/Reduce può essere più veloce, tranne che non vedo alcun docs per Map Reduce su mongoid.org e Google per

map reduce site:mongoid.org 

non dà alcun risultato neanche. (O utilizzando MapReduce o Map/Reduce)

Ci sono documenti sul sito di MongoDB

map reduce site:mongodb.org 

ma hanno bisogno di utilizzare Map Reduce con Mongoid pure.

risposta

21

È possibile utilizzare la mappa ridurre con Mongoid proprio come si poteva attraverso il driver di Ruby direttamente:

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

Per alcuni esempi di fare carta a ridurre nel driver di Ruby, vedi this blog post da Kyle Banker (manutentore del Rubino Driver MongoDB).

+0

hm, quindi questo è di andare su un percorso di livello inferiore usando il driver Ruby per MongoDB ... non usando Mongoid di per sé? Forse se Mongoid lo ha direttamente, può essere migliore ... (avere Mutoide implica che hai anche il driver Ruby o deve essere separato?) A partire da ora, se uso 'Analysics.collection' restituisce un' Mongoid :: Oggetto collezione. 'Analytic.collection.methods.grep/map /' => '[" mapreduce "," map_reduce "]', quindi map_reduce è definito. –

+2

Mongoid gira sopra il driver Ruby e, utilizzando il metodo sopra, passa semplicemente le funzioni al driver Ruby. – PreciousBodilyFluids

+0

quindi forse Mongoid può metterlo nei loro documenti ufficiali eh? che Mongoid supporta Map/Reduce usando il driver Ruby. –