Как использовать функцию $ lte в операциях агрегации mongodb - PullRequest
0 голосов
/ 25 октября 2018

В mongoDB я ввел коллекцию, в которой хранятся данные о сотруднике в компании, включая их зарплату. Я рассчитал среднюю зарплату сотрудника, используя агрегацию $ avg. Теперь, если я хочу рассчитать среднюю зарплату только тех сотрудников, у которых есть зарплатаменьше определенного значения, как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Вы можете использовать

db.collectionName.aggregate([
    {
        $match: {
            "salary": {
                $lte: 100
            }
        }
    },
    {
        $group: {
            "_id": "$groupKey",
            "avg": {
                $avg: "$salary"
            }
        }
    }
])
0 голосов
/ 25 октября 2018

В настоящее время у меня нет доступа к mongodb для тестирования запроса, но в вашем случае вы просто добавили бы объект запроса $match в свой агрегатный "конвейер" непосредственно перед группировкой $avg.

Что-то вроде:

[{'$match':{'salary':{'$lt':199}}}, {'$group':{...}}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...