【发布时间】:2013-08-16 08:26:45
【问题描述】:
我正在构建一个MongoDB Java 查询,当我试图在我的数据库中查找一个特定值时,由于我的String 中有一些不需要的'\' 字符,查询变得一团糟。
这就是我正在做的事情。
我从mongodb 中得到一个字符串列表,然后我使用这些字符串在另一个集合中执行查找。
DBCursor = null;
for(String s : list){
BasicDBOject query = = new BasicDBObject("actor.preferredUsername", s);
cursor = coll.find(query);
//treat the results
}
如果我使用查询执行System.out.println(),这就是我得到的:
{ "actor.preferredUsername" : "\"NapoleSunset75\""}
注意最后一个字段中的'\'。
现在,出于测试目的,如果我将's' 更改为像"xpto" 这样的固定字符串,则会成功创建查询,并返回
{ "actor.preferredUsername" : "xpto"}
谁能帮忙?
【问题讨论】:
-
当您将其存储在数据库中时,您似乎有多余的引号。
-
\ 正在转义“ - 实际问题是什么?
-
打开 mongo shell,做同样的查询,现在看看 `\` 是否实际存储为一个值。
-
在您的问题中包含确切的打印语句..
-
谢谢@doctorlove,我看错了。将 " 替换为 null 即可。
标签: java string character-encoding extra