2010-09-15 18 views
17

Mongoid tarafından döndürülen diziden toplamı hesaplamak için Ruby kodunu kullanıyorum.Mongoid'in Map/Reduce özelliği var mı?

Ama belki Haritası kullanarak/Harita ya herhangi bir sonuç vermez

map reduce site:mongoid.org 

için mongoid.org ve Google'da azaltın için ben hiçbir dokümana görmüyorum dışında daha hızlı olabilir azaltın. Orada mongodb sitesine

map reduce site:mongodb.org 

üzerinde docs ama Haritası yanı Mongoid ile azaltın kullanmaya gerek

(veya MapReduce veya Map/Reduce kullanarak).

cevap

21

sadece doğrudan Yakut sürücüsü aracılığıyla geldiğince Mongoid ile azaltmak haritayı kullanabilirsiniz: Harita, Yakut sürücüsünde azaltmak yapmanın bazı örnekler için

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

Kyle Banker (Ruby idame ettirici this blog post bkz MongoDB sürücüsü).

+0

hm, bu MongoDB için Ruby sürücüsünü kullanarak daha düşük bir rotaya gitmek için ... Mongoid per se kullanarak değil mi? Belki Mongoid doğrudan varsa, daha iyi olabilir ... (Mongoid'in Ruby sürücüsüne sahip olmanız mı yoksa ayrı mı olması gerektiğini mi ima ediyor?) Şu an itibariyle, 'Analytics.collection' kullanırsam bir Mongoid döndürür :: Koleksiyon 'nesnesi. 'Analytic.collection.methods.grep/map /' => ["mapreduce", "map_reduce"] ', böylece map_reduce tanımlanmıştır. –

+2

Mongoid, Ruby sürücüsünün üstünde çalışır ve yukarıdaki yöntemi kullanarak işlevleri yalnızca Ruby sürücüsüne aktarır. – PreciousBodilyFluids

+0

bu yüzden Mongoid bunu resmi belgelerine yerleştirebilir mi? Mongoid, Ruby sürücüsünü kullanarak Map/Reduce'u destekliyor. –