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

MongoDB đếm tài liệu cho mỗi phần tử mảng

Bạn có thể $ thư giãn mảng của bạn để nhận một tài liệu cho mỗi phần tử và sau đó chạy $ group để đếm các phần tử:

db.collection.aggregate([
    {
        $unwind: "$elements"
    },
    {
        $group: {
            _id: "$elements",
            count: { $sum: 1 }
        }
    }
])

CHỈNH SỬA:bạn có thể sử dụng nhóm bổ sung với $ ReplaceRoot $ arrayToObject để trả về id của bạn dưới dạng khóa và được tính là giá trị:

db.collection.aggregate([
    {
        $unwind: "$elements"
    },
    {
        $group: {
            _id: "$elements",
            count: { $sum: 1 }
        }
    },
    {
        $group: {
            _id: null,
            counts: { $push: { k: "$_id", v: "$count" } }
        }
    },
    {
        $replaceRoot: {
            newRoot: { $arrayToObject: "$counts" }
        }
    }
])

Sân chơi Mongo




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Chèn dữ liệu vào Meteor từ API Facebook

  2. Mongoose QueryStream kết quả mới

  3. 6 Công cụ hữu ích để theo dõi hiệu suất MongoDB

  4. Tải tệp lên và tải xuống bằng sao băng

  5. trả lại truy vấn dựa trên ngày