sql >> Database >  >> NoSQL >> MongoDB

Hoe het percentage te berekenen met behulp van facet in MongoDB?

Je kunt het proberen,

  • $group door userId en krijg totalSeen tellen met $cond als status is seen , ontvang het totale aantal meldingen met $sum ,
  • $project om verplichte velden weer te geven en percentage te berekenen met $divide en $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]
      }
    }
  }
])

Speeltuin




  1. Hoe maak je een Mongo Docker-afbeelding met standaardverzamelingen en -gegevens?

  2. MongoTemplate.aggregate uitvoeren zonder het ophalen van rijen

  3. Standaardwaarde niet ingesteld bij gebruik van Update met Upsert als true

  4. Rate-Limit een API (lente MVC)