如何使用“+”(加号)等特殊字符来处理mongodb正则表达式?
问题描述:
我想在文档中搜索具有特殊字符的值,例如“+”。如何使用“+”(加号)等特殊字符来处理mongodb正则表达式?
variable = 'test+test.test';
我想与.*variable.*
搜索值,
例如,
db.myCollection.find({ myKey : { '$regex' : '.*variable.*','$options' : 'i' });
上面查询不工作
答
搜索值我想与
.*variable.*
您无需使用星号运算符.*variable.*
进行搜索。
下面的工作就如同罚款:
// returns all keys with "variable" somewhere in the string
db.myCollection.find({ myKey : /variable/i});
我想搜索有特殊字符,如“+”在文档的值。
如果你想用正则表达式来做到这一点,只需用\
逃脱+
字符:
db.myCollection.find({ myKey : /test\+test/i});
+0
感谢您的回复,但我的问题在流星js所以我的流星查询是 - Meteor.users.find(查询,{限制:限制,跳过:跳过,排序:sortby}),并在流星服务器端myCollection.find({ myKey:/ test \ + test/i});不工作,我的正则表达式查询是查询= {'emails.address':{'$ regex':'。*'+ customQuery.searchText +'。*','$ options':'i'}} – Dharmik
答
variable = 'test\+test\.test';
然后
db.myCollection.find({ myKey : { '$regex' : '.*'+variable+'.*','$options' : 'i' });
你能告诉你的MongoDB收集的文件? – dikesh