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' } });
我正在从 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' } });