MongoTemplate (Spring) 中插入、保存、更新的区别

时间:2021-05-24 09:33:23

标签: java spring mongodb mongotemplate

我从 Spring 和 MongoDB 开始。我已经看到有几种方法可以插入和/或更新。我还在这里阅读了一些解释一些概念的帖子。但我不太了解他们。 如果我错了或有遗漏,请纠正我。

  • Update():只更新一个对象,并且只有当它有一个 id 时才有效。

  • Upsert():如果对象存在则进行更新(它必须有一个 id)或者如果它不存在则插入它。

  • Insert():不需要 id 就可以将 Document 添加到集合中。

  • save():我真的不知道与插入的区别。

如果有更多类似的方法并且我忘了提及,我将不胜感激,如果您也能解释一下。

1 个答案:

答案 0 :(得分:0)

保存

save 方法将文档保存到给定对象的实体类型的集合中。当我们传递集合名称时,即使实体是不同类型的,文档也会保存在指定的集合中。

`Student ram = new Student(101,"Ram",20);
mongoTemplate.save(ram);

Person newPerson = new Person(102, "Shyam");
mongoTemplate.save(newPerson, "student"); `

保存后
{ "_id" : 101, "name" : "Ram", "age" : 20, "_class" : "com.concretepage.entity.Student" }
{ "_id" : 102, "name" : "Shyam", "_class" : "com.concretepage.entity.Person" }

插入

为了将文档插入到 MongoDB 集合中,MongoTemplate 提供了 insert 方法。找到插入一个文档的代码。

Student ram = new Student(1,"Ram",20);
mongoTemplate.insert(ram);

插入后
{ "_id" : 1, "name" : "Ram", "age" : 20, "_class" : "com.concretepage.entity.Student" }

欲了解更多信息,请参阅以下链接

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