【发布时间】:2016-09-14 08:20:35
【问题描述】:
这个错误非常古怪。它并不总是失败,但当它失败时,它看起来像这样。
我有一些代码可以更改子文档数组中元素的“代码”(一个字符串)。它遍历每个目标,检查是否有要应用的更改,如果是,则应用它。
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 是目标数组的长度。即没有goals.3 子文档。我已经尝试在验证之前记录 user.goals 和 user.goals.length 并且他们都同意数组中只有 3 个元素。
我完全被迷惑了。
【问题讨论】:
-
不幸的是,除非您提供minimal reproducible example,否则很难提供帮助。
标签: node.js mongodb validation mongoose subdocument