Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.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
Mongodb 春季JPA MongoRepository起因“;“复制密钥”;错误,而不是更新文档_Mongodb_Spring Data_Spring Data Jpa_Spring Data Mongodb - Fatal编程技术网

Mongodb 春季JPA MongoRepository起因“;“复制密钥”;错误,而不是更新文档

Mongodb 春季JPA MongoRepository起因“;“复制密钥”;错误,而不是更新文档,mongodb,spring-data,spring-data-jpa,spring-data-mongodb,Mongodb,Spring Data,Spring Data Jpa,Spring Data Mongodb,我的模型中有一个字段ID: @Field(value = "_id") private ObjectId Id; 和数据库条目: _id: ObjectId("5a7ecec9bd9bd72884484bc4") name:"October" 我的存储库只是扩展了MongoRepository,没有额外的方法 目标是更新文档 问题是MongoRepository没有任何update方法,所以我读了几篇文章,发现save方法会更新文档,如果在DB中找到具有相同“Id”的现有文档,则会创建新条目

我的模型中有一个字段ID:

@Field(value = "_id")
private ObjectId Id;
和数据库条目:

_id: ObjectId("5a7ecec9bd9bd72884484bc4")
name:"October"
我的存储库只是扩展了MongoRepository,没有额外的方法
目标是更新文档
问题是MongoRepository没有任何
update
方法,所以我读了几篇文章,发现
save
方法会更新文档,如果在DB中找到具有相同“Id”的现有文档,则会创建新条目。另一种方法——
insert
——不查找现有的“Id”,只尝试创建新文档。 据我所知,
insert
可能会导致
E11000重复密钥错误
,但在我的情况下,此错误会出现在两种方法中:
save,insert

为什么
保存
会导致重复错误?使用MongoRepository更新文档有什么不同的方法吗?

请发布您的存储库方法定义好吗?使用@Id注释而不是@Field(value=“\u Id”)