Java MongoDB не может запрашивать с критериями String в коллекции

У меня есть коллекция в БД, и я могу получить ее в DBCollection очень хорошо. Но когда я пытаюсь сделать запрос с помощью поля String, он не возвращает никакого результата.

Однако когда я выполняю запрос с полем 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, но в этом нет ничего особенного. Но интересно, что это не работает.

Надеюсь, ты сможешь показать мне способ обойти это. Спасибо.

1 ответ

Решение

Ваши строковые значения заключены в кавычки. Если вы не можете это изменить, вы можете включить в свой запрос кавычки:

allQuery.put("iata", "\"BOS\"");
Другие вопросы по тегам