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]
          }
        }
      }
    ])
    

    遊び場




    1. MongoEngine-削除されたフィールドは引き続きValidationErrorを発生させます

    2. mongodbの各グループの最新のNレコードを取得するにはどうすればよいですか?

    3. 実際にmongoに接続せずに、mongoに接続するメソッドをユニットテストするにはどうすればよいですか?

    4. Spring Data MongoDB:集約フレームワーク-ネストされたプロパティで並べ替えると無効な参照がスローされます