Как сопоставить точную фразу с динамической c строкой в ​​текстовом индексе Mongodb? - PullRequest
0 голосов
/ 30 января 2020

У меня есть этот запрос

db.words.find({ "$text": { "$search": "\"cake sale\"" } }) // gives expected answer in robo3T

Теперь мой text поиск является динамическим c

const text = "cake sale"
db.words.find({ "$text": { "$search": `\\"${text}\\"` } })

Но он не дает ожидаемого результата при nodejs. Итак, как мне разобрать бэкслу sh здесь?

1 Ответ

0 голосов
/ 30 января 2020

Ваш запрос неверен. Вам нужно изменить запрос

db.words.find({ "$text": { "$search": `"\"${text}\"` } })

на

db.words.find({ "$text": { "$search": `\"${text}\"` } })

Так как после первой обратной цитаты в начале есть дополнительная двойная кавычка ("). Это исправит ваш запрос.

Простая иллюстрация:

console.log("\"cake sale\"");

var text = "cake sale";
console.log(`\"${text}\"`);
// both the console.log gives same result
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...