sql >> Databasteknik >  >> NoSQL >> MongoDB

mongodb query vs mysql

Förutom att @Joe och @Nenad svarar på felet för subtraktionen:'$rate-$100';

Du måste omplacera din logiska struktur.

  1. Utför beräkning:SUM((credit*(100-rate))/100) .
  2. Gruppera efter $accountNum och samla SUM för resultMultiply .
db.collection.aggregate([
  {
    $match: {
      rate: {
        $ne: 0
      }
    }
  },
  {
    $addFields: {
      resultMultiply: {
        $divide: [
          {
            $multiply: [
              "$credit",
              {
                "$subtract": [
                  100,
                  "$rate"
                ]
              }
            ]
          },
          100
        ]
      }
    }
  },
  {
    $group: {
      _id: "$accountNum",
      total: {
        $sum: "$resultMultiply"
      }
    }
  }
])
[
  {
    "_id": 2,
    "total": 1.5
  },
  {
    "_id": 1,
    "total": 5.5
  }
]

Exempel på MongoDB-lekplats



  1. Populate() ref kapslad i objektmatrisen

  2. MongoDB 3 Java kontrollera om samlingen finns

  3. MongoDB Undantag:Server rapporterar trådversion 0, men versionen av libmongoc kräver minst 3

  4. RoR :Mongoid och form skapar hash