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

Giá trị khác biệt đếm MongoDB?

Trong khi .distinct() hoạt động tốt khi chỉ lấy các giá trị riêng biệt cho một trường, để thực sự nhận được số lần xuất hiện, điều này phù hợp hơn với khung tổng hợp:

Collection.aggregate([
    { "$group": {
        "_id": "$field",
        "count": { "$sum": 1 }
    }}
],function(err,result) {

});

Cũng là .distinct() phương thức thực hiện "trừu tượng" từ nơi trường "khác biệt" được chỉ định thực sự nằm trong một mảng. Trong trường hợp này, bạn cần gọi $unwind đầu tiên để xử lý các phần tử mảng tại đây:

Collection.aggregate([
    { "$unwind": "$array" },
    { "$group": {
        "_id": "$array.field",
        "count": { "$sum": 1 }
    }}
],function(err,result) {

});

Vì vậy, công việc chính được thực hiện về cơ bản trong nhóm $group bằng cách "nhóm" trên các giá trị trường, có nghĩa giống như "khác biệt". $sum là một toán tử nhóm mà trong trường hợp này chỉ thêm 1 cho mỗi lần xuất hiện của giá trị đó trong trường cho bộ sưu tập đó.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Dữ liệu mùa xuân Khớp và Lọc Mảng lồng nhau

  2. Mongoose điền mảng lồng nhau

  3. MongoDB:Không thể chuẩn hóa truy vấn:BadValue Projection không thể có kết hợp bao gồm và loại trừ

  4. Phương pháp hay nhất để duy trì một phiên mgo

  5. 3 bước đơn giản để cải thiện tính bảo mật cho cài đặt MongoDB của bạn