sql >> Database >  >> NoSQL >> MongoDB

Tel matrixelementen die overeenkomen met de voorwaarde

U moet $filter . gebruiken aggregatie om de external . uit te filteren oorsprong en internal oorsprong samen met de $size aggregatie om de lengte van de arrays te berekenen.

Zoiets

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"] }
        }
      }
    }
  }}
])

Uitgang

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



  1. Serialiseer een klas op twee verschillende manieren met Jackson

  2. Memcached gebruiken met Yii2 Framework

  3. Hoe selderij-redis configureren in django-project op Microsoft Azure?

  4. MongoDB niet geautoriseerd voor zoekopdracht - code 13