下面是我的查询,它从数据库返回结果。我正在使用3.2.22 mongo版本
db.courses.find({_id:"edX-NYIF+CR.5x"});
现在,我想获取课程ID的记录,该记录将以小写形式显示,因此我在下面的查询中使用了字母字符,但未获得后续课程ID的结果,似乎工作正常。
db.getCollection('courses').find({"_Id": { $regex : "edX-NYIF+CR.5x$" , $options: 'i'}})
答案 0 :(得分:2)
正则表达式表达式字符串需要转义
db.getCollection('courses').find({"courseId": { $regex : "edX\\-NYIF\\+CR\\.5x$" , $options: 'i'}})
答案 1 :(得分:0)
乍一看,您的查询看起来不错...但是由于您的ID格式,我认为这无法按预期工作。
字符串"edX-NYIF+CR.5x"
包含对正则表达式具有特定含义的字符,例如.
和+
,也许其他一些ID包含其他ID。你应该先逃避这些。
Looking at another SO question,有一种转义对正则表达式敏感的字符的简单方法:
string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')
因此请转义您的ID字符串,然后在查询中使用它。
Here's a handy reference for special characters inside regular expressions, should you need it.