为了账号安全,请及时绑定邮箱和手机立即绑定

使用复合自定义 _id 插入 Mongodb 时出现 MongoWriteException

使用复合自定义 _id 插入 Mongodb 时出现 MongoWriteException

慕哥6287543 2023-06-08 19:23:11
我有一个正在使用的 MongoDB 远程服务器。我的 KEY 是一个自定义对象,其中包含其他嵌套对象。简单的插入工作正常,但如果我尝试运行collection.replaceOne(eq("_id", KEY), document, new UpdateOptions().upsert(true));我得到 com.mongodb.MongoWriteException: 应用更新后,发现(不可变)字段 '_id' 已更改为 _id: ......如果我在密钥中只有原语,它就可以正常工作。当然,KEY 的值没有改变(一直向下追踪)。这是 ReplaceOne 函数的 Mongo Java Driver 错误吗?
查看完整描述

1 回答

?
qq_花开花谢_0

TA贡献1835条经验 获得超6个赞

事实证明,对于 Mongo 过滤器,json 属性的顺序很重要。通过调试,可以查看过滤器中属性的实际顺序,然后您可以使用 @JsonPropertyOrder("att1", att2") 设置模型属性顺序,以便它们按顺序匹配。


查看完整回答
反对 回复 2023-06-08
  • 1 回答
  • 0 关注
  • 92 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信