MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak obliczyć procent za pomocą aspektu w MongoDB?

Możesz spróbować,

  • $group przez userId i uzyskaj totalSeen liczyć za pomocą $cond jeśli status jest seen , uzyskaj całkowitą liczbę powiadomień za pomocą $sum ,
  • $project aby wyświetlić wymagane pola i obliczyć procent za pomocą $divide i $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]
      }
    }
  }
])

Plac zabaw




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Usuń wszystkie pola, które są puste

  2. Przekaż plik .js do mongo db.eval()

  3. ImportError:Brak modułu o nazwie objectid

  4. Wypełnij na podstawie stanu w manguście, mongoDB

  5. Publikacja Meteor:ukrywanie niektórych pól w polu dokumentu tablicy?