Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/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
Java 更改mongo文档';s id通过spring_Java_Spring_Spring Mongo_Spring Mongodb - Fatal编程技术网

Java 更改mongo文档';s id通过spring

Java 更改mongo文档';s id通过spring,java,spring,spring-mongo,spring-mongodb,Java,Spring,Spring Mongo,Spring Mongodb,有没有办法用spring Mongo修改Mongo集合中所有文档的id 通过多种方式尝试,我收到了如下错误消息: the (immutable) field '_id' was found to have been altered to _id 或 有没有办法做到这一点?不,不允许您更新_id字段。但是您可以始终为现有文档设置一个全新的id,并删除旧的id。当我尝试使用BasicDBObject的replaceOne方法替换id时,出现了第二个错误。或者这不是你所说的设置一个新的_id并删除旧

有没有办法用spring Mongo修改Mongo集合中所有文档的id

通过多种方式尝试,我收到了如下错误消息:

the (immutable) field '_id' was found to have been altered to _id


有没有办法做到这一点?

不,不允许您更新_id字段。但是您可以始终为现有文档设置一个全新的id,并删除旧的id。

当我尝试使用BasicDBObject的replaceOne方法替换id时,出现了第二个错误。或者这不是你所说的设置一个新的_id并删除旧的?我现在没有访问mongo驱动程序的权限,但这就是我所暗示的(未测试):BasicDBObject set=new BasicDBObject($set),new BasicDBObject('u id',1234));更新(someSearchQuery,set);同时,在此之前获取旧的_id,并在设置新id后将其删除。请检查此项:
Write errors: [BulkWriteError{index=0, code=16837, message='The _id field cannot be changed from {_id: "xyz"} to {_id: "zxy"}.