Задать вопрос
sarkis-tlt
@sarkis-tlt
Full Stack Web Developer (ReactJS/MeteorJS/NodeJS)

Mongodb (Mongoose) .find() как искать не полное совпадение?

Скажем мне нужно найти в бд все обекту у которых свойство "string" содержит часть искомого значения, к примеру мы ищем все обьекты у которых свойство "string" равно или содержит значение по искомй строке.
Скажем у нас есть искомая фраза:
let value = "serg"
и мне теперь нужно найти все обьекты в таблицу "Users" у которых свойство name содержит или равно этой строке:

Users.find({name: value});

но при таком поиске идет строгое сравнение, есть варианты добиться чего то на подобии ~name.indexof(value) и если уловие верное то обьект будет включен в массив выдачи?
  • Вопрос задан
  • 2749 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
@vshvydky
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@lega
1) Если кол-во искомых слов не большое, то можно сделать массив в документе и там хранить.
2) Использовать текстовый индекс
3) Если коллекция небольшая то можно $regex, но на больших коллекциях будет тормозить т.к. это полный перебор всех документов.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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