2016-05-30 85 views
0

我在DB中拥有一个集合,并且可以很好地将其获取到DBCollection。 但是,当我尝试使用字符串字段查询它时,它不返回任何结果。Java MongoDB无法使用集合中的字符串条件进行查询

但是,当我使用Integer字段进行查询时,该查询返回同一数据集的结果。

这里是我的考验:

// It doesn't work this way, cursor has nothing 
DBObject allQuery = new BasicDBObject(); 
allQuery.put("data", "someName"); 
List cursor = collection.find(allQuery).toArray(); 


// This time it works, only change is that I query with an Integer value now 
DBObject allQuery = new BasicDBObject(); 
allQuery.put("xyz", 1); 
List cursor = collection.find(allQuery).toArray(); 

这是从数据库返回的集合:

{ "_id" : { "$oid" : "574c780aa8268280d1b53162"} , "id" : 1 , "name" : "\"Some name\"" , "city" : "\"Ankara\"" , "country" : "\"Turkey\""} 

我怀疑那些字符串表示用“\”字符,但找不到任何解决方法,它无论是。

我已经检查了几十篇文章和MongoDB文档,但似乎没有什么特别的。但有趣的是它不起作用。

希望你能告诉我一个方法来解决这个问题。 谢谢。

回答

2

您的字符串值用引号引起来。如果你不能够改变,你可以在查询中包括引号:

allQuery.put("iata", "\"BOS\""); 
+0

当我插入,我只是简单地推列表到DB,为什么这些报价存在? – neocorp

+0

@NiyaziErdogan这些对象是如何生成的? – shmosel

+0

我从CSV文件中读取它们并将其添加到列表中,而无需进行任何修改。 – neocorp

相关问题