MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Пребройте елементите на масива, които отговарят на условието

Трябва да използвате $filter агрегиране за филтриране на external произход и internal произход заедно с $size агрегиране за изчисляване на дължината на масивите.

Нещо подобно

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

Изход

[
  {
    "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. Агрегирана заявка на MongoDB, използваща драйвер за PHP

  2. Създайте 2dsphere геопространствен индекс за сферични заявки в MongoDB

  3. Преданият аргумент трябва да бъде единичен низ от 12 байта

  4. Поправете „името на индекса трябва да бъде низ“ при отпадане на множество индекси в MongoDB

  5. Внедряване на автоматично довършване на MongoDB