如何使用“+”(加号)等特殊字符来处理mongodb正则表达式?

问题描述:

我想在文档中搜索具有特殊字符的值,例如“+”。如何使用“+”(加号)等特殊字符来处理mongodb正则表达式?

variable = 'test+test.test'; 

我想与.*variable.*搜索值,

例如,

db.myCollection.find({ myKey : { '$regex' : '.*variable.*','$options' : 'i' }); 

上面查询不工作

+0

你能告诉你的MongoDB收集的文件? – dikesh

我想与.*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' });