在MongoDB文档中搜索带有特殊字符的字符串
问题描述:
我想搜索文档中具有特殊字符(例如" $ / . @ > "
)的值.
I want to search values having special characters such as " $ / . @ > "
in a document.
让我们考虑一下,我的myKey的值类似于"test$australia", "test$austria", "test$belgium", "green.africa".
Lets consider, I've myKey with values like "test$australia", "test$austria", "test$belgium", "green.africa".
我想用'.*$aus.*',
例如
db.myCollection.find({ myKey : /.*$aus.*/i });
OR
db.myCollection.find({ myKey : { '$regex' : '.*$aus.*','$options' : 'i' });
以上查询不起作用,我应该如何形成查询? 我正在使用MongoDB 2.4.1.
Above queries dont work , how should I form query? I'm using MongoDB 2.4.1.
答
您必须通过\
转义$
:
db.myCollection.find({ myKey : /.*\$aus.*/i });
// OR
db.myCollection.find({myKey: { $regex: '.*\\$aus.*', $options: 'i'}})