Java Драйвер MongoDB: как обновить все документы в коллекции? - PullRequest
0 голосов
/ 06 августа 2020

Следующий код позволяет нам обновить все документы в коллекции customerDetail, где customer_user_id равно 1:

db.getCollection("customerDetail")
        .updateMany(Filters.eq("customer_user_id", 1),
                Updates.combine(
                        Updates.set("birth_year", "birth_year"),
                        Updates.set("country", "country")
                ));

, но мне нужно обновить ВСЕ документы в collection, поэтому мне нужно найти способ попросить Java Driver не применять какие-либо фильтры для запроса обновления, но, как я вижу, для updateMany метод Filter является обязательным атрибутом, и я не могу просто передать null.

Итак, как мне обновить все документы?

1 Ответ

2 голосов
/ 06 августа 2020

Один из вариантов, который я часто использую

mongoCollectionObject
        .updateMany(new Document(), //
                new Document("$set"
                        new Document("birth_year", "birth_year")
                        .append("country", "country")
                ));

Первый - это условие - поскольку оно пустое - эквивалентно {} - означает, что все документы

, второй - документ для быть установленным для всех совпадающих документов

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