Я пытаюсь сгруппировать и посчитать количество элементов для каждой группы в mongodb 2.0.1, но пока безуспешно.
Моя схема БД выглядит так:
{
"_id" : ObjectId("4ece7544853b4b0941000000"),
"ResultSet" : {
"Results" : [
{
"quality" : 87,
"state" : "Franche-Comté"
}
]
}
}
Я пробовал все виды методов, следуя различным учебникам, но каждый раз это один и тот же результат: единственная нулевая группа ... чего я не понимаю, почему.
Лучший запрос, который ядо сих пор написал следующее:
db.extract_2000.group( {
cond: { "ResultSet.Results.quality": {$exists: true} },
key: {"ResultSet.Results.state": true},
reduce: function(obj, glob) { glob.total++; glob.quality += obj.ResultSet.Results.quality },
initial: { total: 0, quality: 0 },
finalize: function(glob) {glob.avgquality = glob.quality / glob.total}
})
Что возвращает (еще раз):
[
{
"ResultSet.Results.state" : null,
"total" : 2000,
"quality" : NaN,
"avgquality" : NaN
}
]
Что я делаю не так?