MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Policz elementy tablicy, które pasują do warunku

Musisz użyć $filter agregacja w celu odfiltrowania external źródło i internal źródło wraz z $size agregacja w celu obliczenia długości tablic.

Coś takiego

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

Wyjście

[
  {
    "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. Jak wyeksportować wszystkie kolekcje w MongoDB?

  2. MongoDB 'count()' działa bardzo wolno. Jak to udoskonalamy/obrabiamy?

  3. używając ciągu dla mongodb _id

  4. Czy istnieje prosty sposób na wyeksportowanie danych z aplikacji wdrożonej przez meteor?

  5. Mongoose pobiera ObjectId z tablicy