MongoDB находит строку, содержащую скобки

Я запрашиваю MongoDB из Node.js Express API. Я пытаюсь найти строку, в которой текущее поле box.profile.description равно «(THE»). используя следующий код. Это не работает. Я использовал регулярное выражение, например, /. Это тоже не помогло

db.getCollection('content').find({'currentBox.profile.description': '(The'}).

Есть предположения?

Это действительно прямолинейно искать строку, которая имеет как открывающую, так и закрывающую круглую скобку. Проблема с этой единственной открытой скобкой

Hasteq 16.07.2019 23:17
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
1
1 841
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Когда вы пытались использовать регулярное выражение, включали ли вы оператор $regex и обязательно ли закрывали левую скобку обратной косой чертой?

Следующий код должен помочь.

Редактировать: Сам символ обратной косой черты \ в строке $regex должен быть экранирован. Это связано с тем, что синтаксический анализатор JavaScript использует его первым, прежде чем синтаксический анализатор регулярных выражений MongoDB увидит его. Таким образом, двойная обратная косая черта.

db.getCollection("content").find(
  { "currentBox.profile.description": { $regex: /\\(THE/, $options: "i" } }
)

Я использую оператор $options, чтобы сделать совпадение нечувствительным к регистру, так как из вашего сообщения неясно, ищете ли вы "(THE" или "(The".

Спасибо за помощь, но это не сработало. Если я использую только открывающие круглые скобки без каких-либо следующих символов, это работает. )

Hasteq 17.07.2019 00:53
Ответ принят как подходящий

Попробуйте использовать оператор $regex и экранировать скобки двойной обратной косой чертой:

db.content.find({ 'currentBox.profile.description': { $regex: '\\(The' } });

Другие вопросы по теме