Однако, когда я запускаю код ниже, mongodb возвращает вместо того, чтобы соответствовать фильтру. />
Код: Выделить всё
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
try {
String user = request.getParameter("username");
String category = request.getParameter("category");
if (user == null || user.isEmpty()) {
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
out.println(gson.toJson(new ResponseMessage("❌ User parameter is required")));
return;
}
// ✅ Build MongoDB query
Document query = new Document("user", user);
if (category != null && !category.trim().isEmpty()) {
query.append("category", category.trim());
}
System.out.println("📡 QUERY => " + query.toJson());
List expensesList = new ArrayList();
// ✅ Double check this is correct collection!
try (MongoCursor cursor = expenseCollection.find(query).iterator()) {
while (cursor.hasNext()) {
Document doc = cursor.next();
System.out.println("✅ Found: " + doc.toJson());
expensesList.add(doc);
}
}
response.setStatus(HttpServletResponse.SC_OK);
out.println(gson.toJson(expensesList));
} catch (Exception e) {
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
out.println(gson.toJson(new ResponseMessage("❌ Error fetching expenses: " + e.getMessage())));
}
}
< /code>
Вот пример документа из моей коллекции Mongodb:
{
«_ id»: {"$ oid": "Queckid"},
"Пользователь": "Chir",
"Категория": "Образование",
": 1000
}
, несмотря на это, Docements quements. Я напечатал фильтр, и он выглядит правильно. Я также проверил аналогичные запросы в MongoDB Compass, и они работают там.
Я ожидал, что функция find () I пробовали:
- pringmy pring>
pringmifit warmition Подключение DataBase Connection ConnectAbase ConnectAbas объект запроса ()Код: Выделить всё
filter.toJson() - В твердом кодировании значений фильтров
- Запуск одного и того же запроса в Mongodb Compass (там работает нормально)
среда:
- java 23
- Mongodb Driver: org.mongodb: mongodb-driver-sync: 4.11.1
- . (2)
Подробнее здесь: https://stackoverflow.com/questions/795 ... n-java-ser