Я запрашиваю MongoDB из Node.js Express API. Я пытаюсь найти строку, в которой текущее поле box.profile.description равно «(THE»). используя следующий код. Это не работает. Я использовал регулярное выражение, например, /. Это тоже не помогло
db.getCollection('content').find({'currentBox.profile.description': '(The'}).
Есть предположения?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Когда вы пытались использовать регулярное выражение, включали ли вы оператор $regex и обязательно ли закрывали левую скобку обратной косой чертой?
Следующий код должен помочь.
Редактировать: Сам символ обратной косой черты \ в строке $regex должен быть экранирован. Это связано с тем, что синтаксический анализатор JavaScript использует его первым, прежде чем синтаксический анализатор регулярных выражений MongoDB увидит его. Таким образом, двойная обратная косая черта.
db.getCollection("content").find(
{ "currentBox.profile.description": { $regex: /\\(THE/, $options: "i" } }
)
Я использую оператор $options, чтобы сделать совпадение нечувствительным к регистру, так как из вашего сообщения неясно, ищете ли вы "(THE" или "(The".
Спасибо за помощь, но это не сработало. Если я использую только открывающие круглые скобки без каких-либо следующих символов, это работает. )
Попробуйте использовать оператор $regex и экранировать скобки двойной обратной косой чертой:
db.content.find({ 'currentBox.profile.description': { $regex: '\\(The' } });
Это действительно прямолинейно искать строку, которая имеет как открывающую, так и закрывающую круглую скобку. Проблема с этой единственной открытой скобкой