我正在从Node.js Express API查询MongoDB。我正在尝试查找一行,其中字段当前框.profile.description为"(THE"。使用以下代码。它不起作用。我像使用/一样使用正则表达式。这也无济于事
db.getCollection('content'(.find({'currentBox.profile.description': '(该'}(。
有什么想法吗?
尝试使用 $regex
运算符并使用双反斜杠转义括号:
db.content.find({ 'currentBox.profile.description': { $regex: '\(The' } });
当您尝试使用正则表达式时,您是否包含$regex
运算符并确保使用反斜杠转义左括号?
下面的代码应该可以解决问题。
编辑:$regex字符串中的反斜杠字符 \ 必须自行转义。这是因为JavaScript解析器首先使用它,然后MongoDB的正则表达式解析器才能看到它。因此是双反斜杠。
db.getCollection("content").find(
{ "currentBox.profile.description": { $regex: /\(THE/, $options: "i" } }
)
我正在使用 $options
运算符使匹配不区分大小写,因为从您的帖子中不清楚您是在搜索"(THE"
还是"(The"
。