我想在mongo中的字符串字段中查找“ \ r”,我发现了这一点,看起来效果很好:
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.*"}});
答案 0 :(得分:0)
尝试
db.users.findOne({"username" : {$regex : ".*\\r.*"}});
答案 1 :(得分:0)
我认为您的问题是,您的。*末尾会倒退。您正在寻找“ 2”。文字后跟任何字符,而不是开头的。*,在文字前说出不是回车符的任何内容。尝试将其更改为
db.users.findOne({"username" : {$regex : ".*\\r*."}});
哪个说给我“ \ r”,在字面值之前有任何非回车符,在字面量之后有任何非回车符。
答案 2 :(得分:0)
我发现这样做的方法是:
db.users.findOne({"username" : {$regex : ".*\\\\.*"}});