MongoDb Java API не обновляется

Я пытаюсь обновить записи MongoDB на основе двух параметров поиска, которые имеют значения Long. Я использую приведенный ниже код для обновления, но я не могу понять ошибки, из-за которых обновления не удались. Благодарим за любую помощь экспертов.

try {

//Code to get the connection to MongoDb
//code to get the Collection 

        long newupdateValue=-101L;

        BasicDBObject updateQuery = new BasicDBObject().append("$set", new BasicDBObject().append("orderId", newupdateValue));          


        Configurer queryConfig = Configurer.getInstance(queriesFile);

        String[] Ids= // List of Ids 



        long OrderId= //Get the Order Id

        for (String id: Ids) {

            long idInLong = Long.parseLong(id);

            BasicDBObject searchQuery = new BasicDBObject();
            searchQuery.put("orderId", OrderId);
            searchQuery.put("id", idInLong );

            WriteResult wr = collection.updateMulti(searchQuery, updateQuery);
            System.out.println(wr);

        }

    }

    catch(Exception e) {
        e.printStackTrace();
    }

    finally {
        MongoDbConnectionManager.closeMongoDbConnection(mongoClient);

    }

Подробная информация о поле MongoDb:

{

"orderId" : NumberLong("99"),

"id"      : NumberLong("1234"),

}

Что говорит результат записи? Он не только сообщит вам количество обновлений, но и количество совпадений. Если совпадения говорят о 0, то критерии запроса неверны.

Neil Lunn 21.11.2018 07:00

Да, я получаю ноль. Я проверил в базе данных правильность значений моего поискового запроса. Они присутствуют.

Bindumalini KK 21.11.2018 09:34

Ну, ваш код Java не считает, что они действительны, поэтому что-то не так. Либо параметры запроса не такие, как вы думаете, либо вы указываете не на ту коллекцию. Пришло время записать и проверить.

Neil Lunn 21.11.2018 09:39

Я попадаю в правильную коллекцию. Есть ли ошибка в настройке searchQuery и UpdateQuery?

Bindumalini KK 21.11.2018 09:47
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
4
66
0

Другие вопросы по теме