【问题标题】:Change mongo document's id via spring通过 spring 更改 mongo 文档的 id
【发布时间】:2017-07-04 20:46:25
【问题描述】:

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

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

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

Write errors: [BulkWriteError{index=0, code=16837, message='The _id field cannot be changed from {_id: "xyz"} to {_id: "zxy"}.

有没有办法做到这一点?

【问题讨论】:

    标签: java spring spring-mongo spring-mongodb


    【解决方案1】:

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

    【讨论】:

    • 当我尝试使用 BasicDBObject 的 replaceOne 方法替换 id 时,它给了我第二个错误。或者设置一个新的_id并删除旧的不是你的意思?
    • 我现在无法访问 mongo 驱动程序,但这是我所暗示的(未测试): BasicDBObject set = new BasicDBObject("$set", new BasicDBObject("_id", 1234 )); someCollection.update(someSearchQuery, set);同时,在此之前获取旧的_id,并在设置新的后将其删除。
    猜你喜欢
    • 2020-07-10
    • 1970-01-01
    • 2016-04-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-15
    • 2021-04-23
    • 2019-08-17
    • 2013-11-24
    相关资源
    最近更新 更多