Задать вопрос

Как сделать полнотекстовый поиск в монгодб по нескольким полям?

есть таблица допустим products , поля id, name, descrption...
создал индекс
db.products.createIndex({'name': 'text', 'description': 'text'});

чтобы искал и по заголовку и по тексту, но он почему то ищет по description только
db.products.find({$text : {$search : 'Мебель'}})
Если в name есть мебель но нет в description, то он эту запись пропускает, а если наоборот то находит, что не так?
  • Вопрос задан
  • 981 просмотр
Подписаться 1 Оценить 3 комментария
Решения вопроса 1
@akhur Автор вопроса
Не знаю как решить поиск по двум полям, сделал одно поле и добавил туда значения name и description потом создал индекс, и уже поиск по новому полю
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@emp1re
db.products.aggregate([
            { $match: {
                $or: [
                    { 'name': { '$regex': req.query, '$options': 'i' } }, 
                    { 'description': { '$regex': req.query, '$options': 'i' } }
                ]
            } }])
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы