-1

我可能在我们的代码上放了一个错误,这基本上破坏了我们的一些数据库数据。

我们时不时地遇到他的电子邮件中带有“”的用户名,所以我们需要解决这个问题。

如何使用我的 mongo shell 在一个字段中搜索“/”fubak@drooop.com“/”之类的值?

我一直在尝试所有我能想到的组合:

db.users.find(username: /"/" .* /)

db.users.find(username: //.*//)

或者

db.users.find(username: /"".*/)

但似乎没有任何效果。

4

3 回答 3

0

不确定哪一个是您的问题,因此对于 MongoDB 中数据的两种可能情况的解决方案如下:

{ "email" : "\"/\"fubak@drooop.com\"/\"" }
{ "email" : "/fubak@drooop.com/" }
{ "email": "\"blablabla@blip.ca\"" }

第一个文件匹配:

db.problem.find({ email: /^\"/  })

第二个文件匹配:

db.problem.find({ email: /^\// })

第三个文件匹配

db.problem.find({ email: /^\"/ })

不知道“有引号”是什么意思,因为那不是有效的 JSON,并且扩展也是无效的 BSON。

于 2014-05-15T10:24:49.163 回答
0

新正则表达式('^".*')

This finds all the records that start with ".

Thanks.

于 2014-05-15T10:33:14.907 回答
0

Try this:

db.users.find({ email: "(?:[^\\"]+|\\.)*  })   

This will match all documents which contains quotes in the email

于 2014-05-15T10:33:40.617 回答