Есть ли способ использовать $ regex с $ all в mongoDB? - PullRequest
0 голосов
/ 07 апреля 2020

Я разрабатываю приложение, в котором массив строк получен из внешнего интерфейса. У меня есть массив ключевых слов для каждого документа в моей базе данных mongoDB. Строки, полученные из внешнего интерфейса, могут быть подстроки ключевых слов. Теперь мне нужно запросить базу данных так, чтобы она возвращала все документы, которые содержат все эти подстроки ключевых слов.
Например. Предположим,
массив ключевых слов для документа 1: ["подстанция", "220/60", "кВ"]]
массив ключевых слов для документа 1: ["подстанция", "220", "кВ", "delhi"]
массив ключевых слов для документа 1: ["subtation", "kV", "Bombay"]]
Массив, полученный с фронта: ["substa", "220"]

Мне нужна база данных для возврата первых двух документов, так как оба элемента полученного массива являются подстроками ключевых слов в обоих документах. Но третий документ возвращать не следует, так как он не содержит «220». Я не смог разработать запрос для этого.

1 Ответ

0 голосов
/ 07 апреля 2020

Предполагая, что у вас есть запросы для каждого из ключевых слов (которые по сути являются одним и тем же запросом), вы можете объединить их с $ и:

{'$and' => [<query for substa>, <query for 220>]}

Также вы должны рассмотреть полнотекстовый поиск .

...