我有一個(gè)正在使用的 MongoDB 遠(yuǎn)程服務(wù)器。我的 KEY 是一個(gè)自定義對(duì)象,其中包含其他嵌套對(duì)象。簡(jiǎn)單的插入工作正常,但如果我嘗試運(yùn)行collection.replaceOne(eq("_id", KEY), document, new UpdateOptions().upsert(true));我得到 com.mongodb.MongoWriteException: 應(yīng)用更新后,發(fā)現(xiàn)(不可變)字段 '_id' 已更改為 _id: ......如果我在密鑰中只有原語(yǔ),它就可以正常工作。當(dāng)然,KEY 的值沒有改變(一直向下追蹤)。這是 ReplaceOne 函數(shù)的 Mongo Java Driver 錯(cuò)誤嗎?
1 回答

qq_花開花謝_0
TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊
事實(shí)證明,對(duì)于 Mongo 過(guò)濾器,json 屬性的順序很重要。通過(guò)調(diào)試,可以查看過(guò)濾器中屬性的實(shí)際順序,然后您可以使用 @JsonPropertyOrder("att1", att2") 設(shè)置模型屬性順序,以便它們按順序匹配。
添加回答
舉報(bào)
0/150
提交
取消