我正在从Node.js Express API查询MongoDB。 我试图找到其中当前框box.profile.description为'(THE'。 使用以下代码。没用我已经像使用/一样使用了正则表达式。那也没有帮助
db.getCollection('content')。find({'currentBox.profile.description': '(The'})。
有什么想法吗?
答案 0 :(得分:1)
当您尝试使用正则表达式时,是否包括了$regex
运算符,并确保使用反斜杠转义左括号?
下面的代码应该可以解决问题。
编辑:$ regex字符串中的反斜杠字符\必须本身可以转义。这是因为在MongoDB的regex解析器看到它之前,JavaScript解析器首先使用了它。因此是双反斜杠。
db.getCollection("content").find(
{ "currentBox.profile.description": { $regex: /\\(THE/, $options: "i" } }
)
我正在使用$options
运算符来使匹配不区分大小写,因为从您的帖子中尚不清楚是要搜索"(THE"
还是"(The"
。
答案 1 :(得分:1)
尝试使用$regex
运算符,并用双反斜杠转义括号:
db.content.find({ 'currentBox.profile.description': { $regex: '\\(The' } });