這個錯誤非常古怪。它並不總是失敗,但是當它看起來像這樣。Mongoose ValidationError需要超出子文檔數組邊界的路徑
我有一些代碼可以改變子代文件數組中元素的「代碼」(一個字符串)。它貫穿每個目標,檢查是否有要應用的更改,如果有,應用它。
for (i = 0; i < user.goals.length; i++) {
if (transformsMap[user.goals[i].code]) {
user.goals[i].code = transformsMap[user.goals[i].code]
}
}
user.goals.sort(function (a,b) {return a.code.charCodeAt(0) - b.code.charCodeAt(0))
當我保存它,有時我得到這樣的錯誤:
'goals.3.code':
{ [ValidatorError: Path `code` is required.]
...但3
在這種情況下,是目標陣列的長度。即沒有目標.3子文檔。我已經在驗證之前嘗試記錄user.goals
和user.goals.length
,他們都同意數組中只有3個元素。
我完全不知所措。
不幸的是,這將是艱難的幫助,除非你能提供一個[MCVE。 – JohnnyHK