MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Làm cách nào để đếm số lần xuất hiện của mỗi giá trị trong mảng?

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
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Node Js Cách tải tệp vào bộ nhớ mà không cần ghi tệp vào hệ thống hoặc không tạo tệp trong thư mục

  2. Truy vấn một tài liệu và tất cả các tài liệu con của nó phù hợp với một điều kiện trong mongodb (sử dụng spring)

  3. Các chỉ mục MongoDB có liên tục khi khởi động lại không?

  4. Tránh giới hạn tổng hợp 16MB

  5. Cách tải phiên bản mongodb từ mongoose