sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur beräknar man procentandelen med facett i MongoDB?

Du kan prova,

  • $group av userId och få totalSeen räkna med $cond om status är seen , få totalt antal aviseringar med $sum ,
  • $project för att visa obligatoriska fält och beräkna procentsatsen med $divide och $multiply
db.collection.aggregate([
  {
    $group: {
      _id: "$userId",
      totalSeen: {
        $sum: { $cond: [{ $eq: ["$status", "seen"] }, 1, 0] }
      },
      total: { $sum: 1 }
    }
  },
  {
    $project: {
      _id: 0,
      userId: "$_id",
      notificationPercentage: {
        $multiply: [{ $divide: ["$totalSeen", "$total"] }, 100]
      }
    }
  }
])

Lekplats




  1. MongoDB Java Inserting Throws org.bson.codecs.configuration.CodecConfigurationException:Kan inte hitta en codec för klassen io.github.ilkgunel.mongodb.Pojo

  2. Hur man använder MongoDB-aggregering för uppsättningsoperationer för allmänna ändamål (union, korsning, skillnad)

  3. Unika poäng för redis leaderboard

  4. Distribuerar Meteor-appen till sin egen server