Я пытаюсь выполнить полнотекстовый поиск в MongoDB с помощью $ searchBeta (агрегация), и для этого я использую оператор 'regex'. Вот часть $ searchBeta, которая у меня есть, которая не работает так, как я ожидал:
$searchBeta: {
regex: {
query: '\blightn', // '\b' is the word boundary metacharacter
path: ["name", "set_name"],
allowAnalyzedField: true
}
}
Вот пример двух документов, которые я ожидаю получить с помощью выражения:
{
"name": "Lightning Bolt"
"set_name": "Masters 25"
},
{
"name": "Chain Lightning",
"set_name": "Battlebond"
}
Что я на самом деле получаю:
[] //empty array
Если я использую выражение вроде:
$searchBeta: {
regex: {
query: '[a-zA-Z]'
path: ["name", "set_name"],
allowAnalyzedField: true
}
}
, тогда я получаю результаты обратно.
Я могу не работает любое выражение, содержащее метасимволы и / или параметры регулярного выражения, поэтому я почти уверен, что просто неправильно ввел его в строку запроса. Документация по регулярному выражению $ searchBeta на самом деле не описывает, как форматировать метасимволы в строке запроса. Кроме того, оператор регулярного выражения $ searchBeta отличается от оператора регулярного выражения $, потому что он не требует косой черты (то есть «/ ваше выражение /»). На самом деле тяну мои волосы за что-то настолько простое, что я не могу понять.