Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring数据和MongoDB,插入或更新_Spring_Mongodb_Spring Data - Fatal编程技术网

Spring数据和MongoDB,插入或更新

Spring数据和MongoDB,插入或更新,spring,mongodb,spring-data,Spring,Mongodb,Spring Data,我在MongoDB中使用Spring数据。是否可以为我的对象执行插入或更新之类的操作。我正在使用MongoTemplate和MongoOperation类。 非常感谢 Spring data提供了一系列关于如何将其与mongodb结合使用的完美教程。你可以在网上找到 我通过开始使用Spring数据,我也是MongoDB的新手,来自MySQL/Hibernate/JPA。在Mongo中,我的理解是没有“更新”和“插入”这样的东西。如果id字段与数据库中已有的内容相同,则为更新。如果不是,则为插入

我在MongoDB中使用Spring数据。是否可以为我的对象执行插入或更新之类的操作。我正在使用MongoTemplate和MongoOperation类。
非常感谢

Spring data提供了一系列关于如何将其与mongodb结合使用的完美教程。你可以在网上找到


我通过

开始使用Spring数据,我也是MongoDB的新手,来自MySQL/Hibernate/JPA。在Mongo中,我的理解是没有“更新”和“插入”这样的东西。如果id字段与数据库中已有的内容相同,则为更新。如果不是,则为插入

我知道在我的代码中,解决重复问题的方法是用@ID标记我自己的ID字段。这告诉Spring Data/MongoDB应该使用特定字段来代替默认生成的ID字段。因此,如果您随后尝试使用相同的id保存实体,Mongo只需覆盖它。

在MongoDB中,您可以保存实体和文档

从MongoDB文档: “upsert无需在执行更新或插入操作之前执行单独的数据库调用以检查记录是否存在。”

更简单地说,这可以理解为“如果且仅当此文档不存在时,请继续为我制作”

应该注意的是,除非您已将upsert设置为true,否则upsert将不会发生,如中的本例所示

db.collection.update(,
,
{upsert:true})

您可能需要upsert:它对于一个字段或某些字段看起来很好,但是否可以对所有对象执行INSERTRUPDATE?谢谢嗯,atm最好的方法是通过upsert循环,没有批量upsert/insert功能atm only batch insert该答案似乎不能回答Spring部分。
db.collection.update( <query>,
                  <update>,
                  { upsert: true } )