MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Hitung item dari dokumen lain dalam agregasi mongodb

Ada banyak cara,

  • $match menghilangkan data yang tidak diinginkan
  • $lookup untuk bergabung dengan koleksi
  • $unwind untuk mendekonstruksi array
  • $group untuk merekonstruksi array dan $sum membantu bertambah 1 menggunakan $cond kondisi

Ini scriptnya

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

Bekerja Taman bermain Mongo




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana cara menambahkan bidang penambahan otomatis dalam agregat MongoDB?

  2. Di Morphia bagaimana saya bisa memperbarui satu Objek yang disematkan di dalam ArrayList

  3. MongoDB yang Dihosting Sendiri

  4. mongodb - lakukan kueri batch

  5. Menanyakan dengan luwak dan kurma