我想在mongo中的字符串字段中查找“\ r \ n”,并且我知道这个,看起来效果很好:
db.users.findOne({"username" : {$regex : ".*son.*"}});
问题是,我想寻找“\ r”,我可以找到它,我知道它在那里,所以我只是做了:
db.users.findOne({"username" : {$regex : ".*\r.*"}});
并且它不起作用,我该如何解决这个问题?
示例文件:
{
"personId" : 1,
"personName" : "john",
"address" : {
"city" : "Rue Neuve 2\\r\\rue Pré-du-Mar \\r ché 1 1003 Lausanne",
"street" : "",
"zipCode" : "",
"streetNumber" : ""
}
}
所以我的查询是:
db.users.findOne({"address.city" : {$regex : ".*\r.*"}});
还尝试过:
db.users.findOne({"address.city" : {$regex : ".*\\r.*"}});
尝试
db.users.findOne({"username" : {$regex : ".*\\r.*"}});
我认为你的问题是你最后有你的。*倒退。你正在寻找一个“2.” literal后跟任何字符,而不是你在开头时所拥有的字符,。*,在字面之前说任何不是回车符的内容。尝试将此更改为
db.users.findOne({"username" : {$regex : ".*\\r*."}});
在文字之前的任何非回车字符和文字之后的任何非回车符号中都说“\ r”。
我发现这样做的方法是:
db.users.findOne({"username" : {$regex : ".*\\\\.*"}});