Как посчитать внешние ключи и группу по имени?Карта MongoDB / уменьшить? - PullRequest
1 голос
/ 07 ноября 2011

Как сделать запрос, который возвращает подсчитанные объекты post_ids с имя родителя. Как это сделать в MongoDB? Я перешел с SQL и я потерял много времени на эту проблему.

один из объектов:

{ "_id" : ObjectId( "4eb69c58b51ab1070e000024" ), 
  "name" : "ruby", 
  "post_ids" : [ 
    ObjectId( "4eb69c58b51ab1070e000023" ), 
    ObjectId( "4eb69c60b51ab1070e000026" ), 
    ObjectId( "4eb69c69b51ab1070e000027" ), 
    ObjectId( "4eb69c6fb51ab1070e000028" ), 
    ObjectId( "4eb69c7db51ab1070e000029" ) ] } 

желаемый эффект:

{"name":"ruby","count":"5", "post_ids":["4eb69c58b51ab1070e000023", 
"4eb69c60b51ab1070e000026", "4eb69c69b51ab1070e000027", 
"4eb69c6fb51ab1070e000028", "4eb69c7db51ab1070e000029"]}

1 Ответ

1 голос
/ 07 ноября 2011

Этот код не тестировался, возможно, потребуется некоторая настройка:

db.articles.group({
    key: { name:true },
    reduce: function(obj,prev) { prev.total_posts += obj.post_ids.length; },
    initial: { total_posts: 0 }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...