我有一個正在使用的 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
提交
取消