我正在从MongoDB速成API查询Node.js。我正在试图找到当前字段box.profile.description为“(”)的行。使用以下代码。它不起作用。我使用regex就像使用/一样。这也没什么用
db.getCollection('content').find({'currentBox.profile.description':‘(})。
有什么想法吗?
发布于 2019-07-16 22:00:06
尝试使用$regex运算符并使用双反斜杠将括号转义:
db.content.find({ 'currentBox.profile.description': { $regex: '\\(The' } });发布于 2019-07-16 21:55:28
当您尝试使用regex时,是否包含了$regex运算符,并确保用反斜杠转义左括号?
下面的代码应该可以做到这一点。
编辑:反斜杠字符\在$regex字符串中必须自己转义。这是因为在MongoDB的regex解析器看到它之前,JavaScript解析器首先使用它。因此,双反斜杠。
db.getCollection("content").find(
{ "currentBox.profile.description": { $regex: /\\(THE/, $options: "i" } }
)我使用$options操作符使匹配不区分大小写,因为从您的帖子中还不清楚您是在搜索"(THE"还是"(The"。
https://stackoverflow.com/questions/57065548
复制相似问题