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

MongoDB Đếm tổng số giá trị đúng và sai cho các tài liệu khớp với một truy vấn

khung tổng hợp là câu trả lời của bạn:

db.collection.aggregate([
    { "$match": { "pollId": "hr4946-113" } },
    { "$group": {
        "_id": "$vote",
        "count": { "$sum": 1 }
    }}
])

Về cơ bản, $group toán tử thu thập tất cả dữ liệu bằng "khóa" và "nhóm toán tử" như $sum làm việc trên các giá trị. Trong trường hợp này, chỉ cần thêm 1 trên ranh giới để biểu thị số lượng.

Mang lại cho bạn:

{ "_id": true, "count": 1 }, 

Bạn có thể ngớ ngẩn và mở rộng điều đó thành một phản hồi tài liệu duy nhất bằng cách sử dụng $ cond toán tử để đánh giá có điều kiện các giá trị trường:

db.collection.aggregate([
    { "$match": { "pollId": "hr4946-113" } },
    { "$group": {
        "_id": "$vote",
        "count": { "$sum": 1 }
    }},
    { "$group": {
        "_id": null,
        "yesCount": {
            "$sum": {
                "$cond": [ "_id", 1, 0 ]
            }
        },
        "noCount": {
            "$sum": {
                "$cond": [ "_id", 0, 1 ]
            }
        }
    }},
    { "$project": { "_id": 0 } }
])

Và kết quả:

{ "yesCount": 1, "noCount": 0 }



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Nhận số lượng loglevel cho mỗi tên

  2. Cách lấy địa chỉ máy chủ của máy chủ mà dữ liệu được lấy từ

  3. TypeError:callback.apply không phải là một hàm (Node.js &Mongodb)

  4. Làm cách nào để cài đặt phiên bản mongodb trước đó với homebrew?

  5. mongodb tổng hợp php