Grupa MongoDB używająca sterownika Ruby

Próbuję przywrócić listę kombinacji rok / miesiąc z licznikami do opisu wpisów na blogu. Chodzi o to, że będą wyświetlane w następujący sposób:

Styczeń 2010 (1 post)Grudzień 2009 (2 posty)...

Udało mi się to uruchomić, używając powłoki JS MongoDB, i zwraca wyniki w użytecznym formacie:

db.posts.group({ 
    keyf: function(x){ 
                      return { 
                              month: x.datetime.getMonth(), 
                              year:x.datetime.getFullYear() 
                      }; 
    }, 
    reduce: function(x,y){ y.count++ }, 
    initial:{count:0} 
})

Wyniki:

[ { "month" : 0, "year" : 2010, "count" : 3 },
  { "month" : 0, "year" : 1970, "count" : 1 } ]

To jest świetne, dokładnie to, czego oczekuję. Jednak próbując przekonwertować ten kod na odpowiedni dla sterownika ruby, nie mogę go uruchomić. Przejrzałem dokumentację i zrozumiałem, że poniższe powinny dawać takie same wyniki (używam MongoMapper, stądPost.collection):

@archive = Post.collection.group(
  "function(x) { return { month: x.datetime.getMonth(), year:x.datetime.getFullYear() }; }",
  nil, { :count => 0 }, 'function(x,y){y.count++}', true)

Zamiast oddawać ładny zestaw przydatnych danych, mam ten bałagan:

{
  "function(x) { return { month: x.datetime.getMonth(), year:x.datetime.getFullYear() }; }" => nil, 
  "count" => 4.0
}

Wydaje się, że albo całkowicie przeciwstawia się własnej dokumentacji (i mojemu zrozumieniu kodu źródłowego!), Albo brakuje mi tutaj czegoś fundamentalnego. Prawie wyciągam włosy, każda pomoc wdzięcznie przyjęta.

questionAnswers(1)

yourAnswerToTheQuestion