MongoDB и Java: запрос не возвращает результаты - PullRequest
1 голос
/ 05 декабря 2011

Я использую драйвер MongoDB Java, и не могу заставить запрос работать.У меня есть коллекция с именем «Вопросы», в которой есть записи, которые выглядят следующим образом:

{
    "question"  : "how are you",
    "category"  : "personal",
    "processed" : false,
    "training"  : true
}

При запуске клиента командной строки Mongo, запрос

db.questions.find()

или

db.questions.find({"processed" : false, "training" : true})

результаты возвращаются, как и ожидалось;однако мой java-код выполняет следующие действия:

DBObject queryObj = new BasicDBObject();
queryObj.put("processed", false);
queryObj.put("training",   isTrain);

DBObject updateObj = new BasicDBObject();
queryObj.put("processed", true);

DBCursor cursor = mongoCollection.find(queryObj).limit(NUM_TO_LOAD);
mongoCollection.update(queryObj, updateObj);

, и возвращаемый мне курсор пуст / обновление не вносит никаких изменений.Если я удаляю аргумент queryObj из вызова для поиска, результаты снова возвращаются, как и ожидалось.Я что-то здесь не так делаю?

Спасибо,
Крис Коверт

1 Ответ

2 голосов
/ 05 декабря 2011

похоже, вы использовали неверную переменную в строке 6. Разве это не должно быть updateObj вместо queryObj?

Надеюсь, isTrain - логическое значение, и его правильно инициировали с помощьюзначение (true / false).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...