Java MongoDB无法使用集合中的String条件进行查询

时间:2016-05-30 22:21:55

标签: java json mongodb mongodb-query dbobject

我在DB中有一个集合,可以很好地将它带到DBCollection。 但是当我尝试使用 String 字段查询它时,它不会返回任何结果。

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

以下是我的试验:

// 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();

这是从DB返回的集合:

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

我怀疑这些字符串表示与" \"字符,但无法找到任何解决方法。

我已经检查过几十篇文章以及MongoDB文档,但似乎没有什么特别之处。但有趣的是它没有用。

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

1 个答案:

答案 0 :(得分:2)

您的字符串值用引号括起来。如果您无法更改,则可以在查询中包含引号:

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