MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да изчислим процента с помощта на фасет в MongoDB?

Можете да опитате,

  • $group от userId и вземете totalSeen брои с помощта на $cond ако status се seen , вземете общия брой известия с помощта на $sum ,
  • $project за показване на задължителните полета и изчисляване на процента с помощта на $divide и $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]
      }
    }
  }
])

Playground




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Проверете дали MongoDB PHP драйверът е инсталиран

  2. 3 лесни стъпки за създаване на разчленени клъстери на MongoDB

  3. Какво правя грешно, когато манипулирам данни в Meteor/MongoDB?

  4. вмъкнете масив в mongodb с помощта на pymongo

  5. Spring Data MongoDB с Java 8 LocalDate MappingException