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

Policz elementy z innego dokumentu w agregacji mongodb

Jest wiele sposobów,

  • $match wyeliminować niechciane dane
  • $lookup dołączać do kolekcji
  • $unwind zdekonstruować tablicę
  • $group zrekonstruować tablicę i $sum pomaga zwiększyć o 1 za pomocą $cond warunek

Oto skrypt

db.Accounts.aggregate([
  { $match: { _id: 2 } },
  {
    $lookup: {
      from: "Responses",
      localField: "_id",
      foreignField: "accountId",
      as: "responses"
    }
  },
  {
    $unwind: "$responses"
  },
  {
    $group: {
      _id: "$_id",
      name: { $first: "$name" },
      trueResponses: {
        $sum: {
          $cond: [{ $eq: [ "$responses.res", true]},1,0]
        }
      },
      falseResponses: {
        $sum: {
          $cond: [{ $eq: [ "$responses.res", false]},1,0]
        }
      }
    }
  }
])

Praca plac zabaw Mongo




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak uzyskać dostęp do zagnieżdżonego pliku za pomocą maszynopisu Pick<>?

  2. Jak zawinąć wyniki wielu odpowiedzi axios.get w jedną tablicę?

  3. Jak pobrać datę z MongoDB ObjectId za pomocą SQL?

  4. ElasticSearch i przeszukiwanie wielu pól w PHP

  5. Przekazywanie $HOSTNAME do kontenera Docker podczas kompilacji