я пытаюcь через aggregate([{ "$match": {'publish': true, 'attribs.name':'color'} },
{ "$unwind": "$attribs" },
{ "$match": {'attribs.name':'color'} },
{ "$group": {
"_id": "$attribs.val"
}} на локальном компе 42 товара в базе - данная агрегация 2 секунды идет, на сервере 30 тысяч - тоже две секунды . Mongoose это. Как то быстрее нельзя это сделать ?
я новичек, но как по мне: - второй $match не имеет смысла (в первом данное условие есть) - нужны индексы для publish и attribs.name Данный запрос, предпологаю, должен выполняться очень быстро. Может есть проблемы с серваком (его настройкой)?
начните с explain, чтоб понять откуда эти две секунды. вместо $unwind и $match используйте $filter https://docs.mongodb.com/manual/reference/operator/aggregation/filter/#filter-aggregation
Обсуждают сегодня