MongoDB: деление чисел типа строки - PullRequest
1 голос
/ 25 апреля 2020

Я хочу разделить два числа в MongoDB, но у меня они в кавычках.

Я имею в виду:

number1: "3"

number2: "25"

Как их разделить? Есть ли возможность делить числа, когда они заключены в кавычки?

Я пытался:

db.myproject.find({ $divide: [ "number1", "number2" ] })

, но это не работает.

1 Ответ

2 голосов
/ 25 апреля 2020

Если у вас версия MongoDB> 4.0 - Когда вы хотите разделить строки, вы можете преобразовать их в числа с помощью оператора агрегирования $ toInt и выполнить свою операцию:

db.collection.aggregate([
  /** '$addFields' will add new field to doc, if you just need 'dividedValue' field then use instead '$project' stage(with '_id:0') */
  {
    $addFields: {
      dividedValue: {
        $cond: [
          { $eq: [ "$number2", "0" ]}, // When you divide by 0, '$divide' result in error so we're having conditional error check here
          "Can't divide by Zero",
          {
            $divide: [
              {
                $toInt: "$number1"
              },
              {
                $toInt: "$number2"
              }
            ]
          }
        ]
      }
    }
  }
])

Тест: mongoplayground

...