#mongodb #java-8 #builder-pattern
Вопрос:
Я работаю над базой данных MongoDB, которая требует обновления своего документа новым столбцом, а также обновления статуса столбца каждый раз, когда он повторяется в списке объектов на основе некоторого условия. Позвольте мне опубликовать код, а затем объяснить его ,
Здесь я сталкиваюсь с двумя проблемами
List<MongoInventory> listOfMongoInventory = new ArrayList<>();
for(PgInventory pgInventory: pgINventoryList){
listOfMongoInventory.add(MongoInventory.builder()
.name(Optional.ofNUllable(pgInventory.getName()).orElse(""))
.attr(Optional.ofNUllable(pgInventory.getAttr()).orElse(""))
.............and more ....
.build());
return listOfMongoInventory
Теперь мне нужно проверить, содержит ли MongoInventory какие-либо нулевые значения, я добавлю новый столбец в документ mongo и установлю его статус как false. Если MongoInventory не содержит никакого нулевого объекта, я также добавлю новый столбец в документ и установлю его статус как true.
Теперь я сталкиваюсь здесь с двумя проблемами: во-первых , чтобы проверить, содержит ли MongoInventory какое-либо нулевое значение, я должен отправить объект в функцию, где я могу выполнить какое-либо условие для проверки этого. Но внутри шаблона конструктора я не могу вызвать какой-либо метод для передачи MongoInventory. во-вторых , я не уверен , как я могу добавить новый столбец в документ mongo на основе некоторого условия, хотя я попробовал некоторый код, я также публикую его
MongoCollection<Document> items = mongoTemplate.getCollection("sample-inventory");
for(MongoInventory mongoInventory : listOfMongoInventory){
items.update(Filters.eq("_id",mongoInventory.get_id()),
Updates.set(.....)// how i will set here
Кто-нибудь , пожалуйста, помогите, я новичок в MongoDB
Комментарии:
1. «во-вторых»…» : Вы можете обновить документ на основе условия; в вашем случае условие состоит в том, что определенное поле равно нулю. Обновление может добавить новое поле (с некоторым значением). Обратитесь к справочнику по драйверам Java MongoDB и документам API.