sql >> Databáze >  >> NoSQL >> MongoDB

Jak vypočítat procento pomocí fasety v MongoDB?

Můžete to zkusit,

  • $group podle userId a získejte totalSeen počítat pomocí $cond if status je seen , získejte celkový počet oznámení pomocí $sum ,
  • $project zobrazit povinná pole a vypočítat procento pomocí $divide a $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]
      }
    }
  }
])

Hřiště




  1. mongodb db.collection.find({}) nedělá nic za .limit(101)

  2. Skupina (podle) v Mongoose?

  3. Kompatibilita s Meteor.js a Mongoose

  4. MongoDB ETIMEOUT