sql >> Database teknologi >  >> NoSQL >> MongoDB

Hvordan beregner man procentdelen ved hjælp af facet i MongoDB?

Du kan prøve,

  • $group af userId og få totalSeen tælle ved hjælp af $cond hvis status er seen , få det samlede antal underretninger ved hjælp af $sum ,
  • $project for at vise obligatoriske felter, og beregne procentdel ved hjælp af $divide og $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]
      }
    }
  }
])

Legeplads




  1. MongoDB sammensatte sparsomme indekser

  2. mongo-forespørgsel - henter et specifikt objekt (dets `_id` er kendt) fra array af objekt MEN denne array er også en del af listen over dokumenter

  3. Find nøgler ved hjælp af jokertegn

  4. MongoDB shell-kommandolinjegodkendelse mislykkes