我有一个正在使用的 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条经验 获得超7个赞
事实证明,对于 Mongo 过滤器,json 属性的顺序很重要。通过调试,可以查看过滤器中属性的实际顺序,然后您可以使用 @JsonPropertyOrder("att1", att2") 设置模型属性顺序,以便它们按顺序匹配。
添加回答
举报
0/150
提交
取消