Bạn quên dấu ngoặc nhọn trên khóa key
giá trị và bạn cần kết thúc dòng đó bằng ,
thay vì ;
.
db.issues.group({
key: {"comments.username":true},
initial: {sum:0},
reduce: function(doc, prev) {prev.sum +=1},
});
CẬP NHẬT
Sau khi nhận ra comments
là một mảng ... bạn cần sử dụng aggregate
để bạn có thể 'thư giãn' comments
và sau đó nhóm trên đó:
db.issues.aggregate(
{$unwind: '$comments'},
{$group: {_id: '$comments.username', sum: {$sum: 1}}}
);
Đối với tài liệu mẫu trong câu hỏi, kết quả này là:
{
"result": [
{
"_id": "Brandon Black",
"sum": 1
},
{
"_id": "Nelson Elhage",
"sum": 3
}
],
"ok": 1
}