MongoDB агрегат с общим счетчиком в качестве переменной - PullRequest
0 голосов
/ 01 ноября 2019

У меня есть условие, которое гласит: Создайте запрос mongodb, который получает 5% от общего числа удовлетворенных претензий по экзамену по претензиям, и мой документ, например:.

db.getCollection("claims").aggregate([
    {$match: { 'status': 'trm'}},
    { $count: "total"}
])

Это дает мне счет 42, например.

Итак, я пытаюсь рассчитать общее количество исчерпанных данных, установить сумму в качестве переменной и применить 5% формулы в разделе $ limit как

{
    $limit: $total * 0.05
}
* 1011. * Я не могу установить сумму от одного конвейера в качестве переменной и применить это в другом конвейере.

Помогите пожалуйста. Как достичь этого типа состояния?

1 Ответ

1 голос
/ 01 ноября 2019

Вы можете сделать это, добавив этап проекта и используя оператор умножения, например:

db.getCollection("claims").aggregate([
  {
    $match: {
      "status": "trm"
    }
  },
  {
    $count: "total"
  },
  {
    $project: {
      "total": {
        $multiply: [
          "$total",
          0.95
        ]
      }
    }
  }
])

https://mongoplayground.net/p/VsypWLI6iJt

Документы: https://docs.mongodb.com/manual/reference/operator/aggregation/multiply

...