Запрос к MongoDB с фильтром
Есть таблица вида:
_id | model | speed | price |
Надо составить запрос и вывести среднюю скорость по моделям, цена которых выше 2000.
Пытался сделать так:
db.laptop_full.find({price: {$gt: 2000}}).aggregate([{$group: {_id: "Laptop", avg_speed: {$avg: "$speed"}}}])
но выдает ошибку, я так понимаю - нельзя aggregate вызывать после find
Пытался еще сделать через db.laptop_full.aggregate() вставляя туда $filter и $group, но ничего не выходит и не очень то понимаю как надо.. Подскажите запрос, пожалуйста
Ответы (1 шт):
Автор решения: Nobody
→ Ссылка
Решил проблему с использованием $match. Запрос выглядит так:
db.laptop.aggregate(
[
{"$match": {"price": {$gt:2000}}},
{$group: {_id: "laptops", avg_speed: {$avg: "$speed"}}}
]
)