gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 01:35:02 25 4
gpt4 key购买 nike

我有一个正在使用的 MongoDB 远程服务器。

我的 KEY 是一个自定义对象,其中包含其他嵌套对象。

简单的插入工作正常,尽管如果我尝试运行

collection.replaceOne(eq("_id", KEY), document, new UpdateOptions().upsert(true));

我得到 com.mongodb.MongoWriteException:应用更新后,发现(不可变)字段“_id”已更改为 _id:......

如果我的 key 中只有原语,它就可以正常工作。当然,KEY 的值没有改变(一路向下追踪)。

这是 Mongo Java 驱动程序的 ReplaceOne 函数错误吗?

最佳答案

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

这一消息得到了 Mongo 团队成员的证实。Mongo票-> https://jira.mongodb.org/browse/JAVA-3392

关于java - 使用复合自定义 _id 插入 Mongodb 时出现 MongoWriteException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57526106/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com