Различия между вставкой, сохранением, обновлением в MongoTemplate (весна)

#java #spring #mongodb #mongotemplate

Вопрос:

Я начинаю с весны и Монгодба. Я видел, что существует несколько методов для вставки и / или обновления. Я также прочитал здесь несколько постов, объясняющих некоторые концепции. Но я не совсем их понимаю. Поправьте меня, если я ошибаюсь или если чего-то не хватает.

  • Update (): обновляет только объект и работает только в том случае, если у него есть идентификатор.
  • Upsert (): Выполняет обновление, если объект существует (у него должен быть идентификатор), или вставляет его, если он не существует.
  • Вставка (): Вам не нужен идентификатор, и вы добавляете документ в коллекцию.
  • сохранить (): Я действительно не знаю разницы со вставкой.

Если есть другие методы, которые работают аналогичным образом и о которых я забыл упомянуть, я был бы признателен, если бы вы также могли это объяснить.

Ответ №1:

Сохранить

Метод сохранения сохраняет документ в коллекции для типа сущности данного объекта. Когда мы передаем имя коллекции, документ сохраняется в указанной коллекции, даже если сущность другого типа.

`Озу студента = новый студент(101,»Озу»,20);
MongoTemplate.save(озу);

Новый человек = новый человек(102, «Шьям»);
монгоТемплата.сохранить(Новый человек, «студент»); `

После сохранения
{ «_id» : 101, «имя» : «Озу», «возраст» : 20, «_класс» : «com.конкретная страница.сущность.Студент» }
{ «_id» : 102, «имя» : «Шьям», «_класс» : «com.конкретная страница.сущность.Человек» }

Вставить

Чтобы вставить документ в коллекцию MongoDB, MongoTemplate предоставляет метод вставки. Найдите код для вставки одного документа.

ОЗУ учащегося = новый учащийся(1,»Озу»,20);
Монгольская табличка.вставка(ОЗУ);

После вставки
{ «_id» : 1, «имя» : «Озу», «возраст» : 20, «_класс» : «com.конкретная страница.сущность.Студент» }

для получения дополнительной информации перейдите по ссылке ниже

https://www.concretepage.com/spring-5/spring-data-mongotemplate