Mongodb сложение с умножением и делением не будет работать, если значения деления равны нулю - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть такой набор данных:

{
    "_id" : ObjectId("5c35f04c4e92b8337885d9a6"),
    "activity" : {
        a: 10,
        b: 20,
        c: 30,
        d: 40,//This is for ratio purpose
        e: 50,//This is for ratio purpose
    }
}

Теперь я хочу выполнить сложение с умножением и делением для этого я написал запрос, т.е.

User.aggregate([
  { $match: { _id: ObjectId("5c35f04c4e92b8337885d9a6") } },
  { $unwind: "$_id" },
  {
    $project: {
      "activity.score": {
         $add: [
          {
            $multiply: [
              "$activity.message_count",
              1.5
            ]
          },
          {
            $multiply: [
              "$activity.b",
              1.6
            ]
          },
          {
            $multiply: [
              "$activity.c",
              1.7
            ]
          },
          {
            $multiply: [
              {
                $divide: [
                  "$activity.d",
                  "$activity.e"
                ]
              },
              1.8
            ]
          }
      }
    }
]).then(data => {
console.log(data)
})
.catch(error => {
console.log(error)
})

Таким образом, я получилответьте, но когда

d и e станут 0, т. е. вот так

{
        "_id" : ObjectId("5c35f04c4e92b8337885d9a6"),
        "activity" : {
            a: 10,
            b: 20,
            c: 30,
            d: 0,//This is for ratio purpose
            e: 0,//This is for ratio purpose
        }
    }

, тогда mongodb выдаст ошибку, которая будет MongoError: not $делим на ноль .

Любой может подсказать мне, как справиться с этим

...