Монго регулярное выражение |найти документы, где подмассив содержит любую часть строки - PullRequest
0 голосов
/ 26 февраля 2019

У меня относительно простая коллекция Mongo (называемая оповещениями), которая содержит несколько свойств подмассива со строками.Например:

{
    "alertName":"Test Alert",
    "sources":["hose"],
    "chemicals":["Lead"]
}

Я пытаюсь найти эту коллекцию, где любой элемент в одном из подмассивов содержит входную строку поиска.

Например, с учетом входной строки " Hube Elbow Value Pack"- если бы я выполнял запрос регулярного выражения в исходном подрешетке - я бы ожидал, что приведенный выше документ вернется - поскольку" шланг "из массива источников содержится в этой строке.

db.alerts.find({sources:{'$in':[/Hose Elbow Value Pack X001ACFNEB/i]})
db.alerts.find({sources:{'$in':[/.*Hose Elbow Value Pack X001ACFNEB.*/i]})

Буду признателен за любые предложения.

1 Ответ

0 голосов
/ 26 февраля 2019

Создать индекс для поиска.

db.alerts.createIndex( { sources: "text" } )

Выполнить

db.alerts.find( { $text: { $search: "Hose Elbow Value Pack X001ACFNEB" } } )

Для получения дополнительной помощи https://docs.mongodb.com/manual/text-search/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...