Как я могу динамически добавлять и обновлять столбец в MongoDB на основе некоторых условий

#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.