MongoDB查找包含括号的字符串

时间:2019-07-16 21:15:29

标签: javascript node.js mongodb nosql mean-stack

我正在从Node.js Express API查询MongoDB。 我试图找到其中当前框box.profile.description为'(THE'。 使用以下代码。没用我已经像使用/一样使用了正则表达式。那也没有帮助

  

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

有什么想法吗?

2 个答案:

答案 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' } });