MongoDB 查找包含括号的字符串

MongoDB find string containing parentheses

我正在从 Node.js Express API 查询 MongoDB。 我正在尝试查找当前字段 box.profile.description 为“(THE”的行。 使用以下代码。它不起作用。我使用正则表达式就像使用 / 一样。这也没有帮助

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

有什么想法吗?

当您尝试使用正则表达式时,是否包括了 $regex 运算符并确保使用反斜杠转义左括号?

下面的代码应该可以解决问题。

编辑: $regex 字符串中的反斜杠字符 \ 本身必须进行转义。这是因为 JavaScript 解析器在 MongoDB 的正则表达式解析器看到它之前首先使用它。因此双反斜杠。

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

我正在使用 $options 运算符来匹配 case-insensitive,因为从您的 post 中不清楚您是在搜索 "(THE" 还是 "(The"

尝试使用 $regex 运算符并使用双反斜杠转义括号:

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