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

Đếm phần tử mảng phù hợp với điều kiện

Bạn cần sử dụng $filter tổng hợp để lọc ra external nguồn gốc và internal nguồn gốc cùng với $size tổng hợp để tính độ dài của mảng.

Một cái gì đó như thế này

db.collection.aggregate([
  { "$addFields": {
    "internalUsersCount": {
      "$size": {
        "$filter": {
          "input": "$participants",
          "as": "part",
          "cond": { "$eq": ["$$part.origin", "internal"]}
        }
      }
    },
    "externalUsersCount": {
      "$size": {
        "$filter": {
          "input": "$participants",
          "as": "part",
          "cond": { "$eq": ["$$part.origin", "external"] }
        }
      }
    }
  }}
])

Đầu ra

[
  {
    "conferenceName": "myFirstConference",
    "endDate": 1535722420,
    "externalUsersCount": 1,
    "internalUsersCount": 1,
    "startDate": 1535722327
  }
]



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. $ đầu tiên trong mongodb

  2. Thực thi Mongo như Truy vấn (JSON) thông qua Java

  3. Làm cách nào để kiểm tra xem một trường mảng có phải là một phần của một mảng khác trong MongoDB hay không?

  4. MongoDB - Tạo mối quan hệ

  5. Làm thế nào để thực hiện các hoạt động mongodb thô trong mongoose?