У меня есть код, который выглядит следующим образом.Буквально только косметические изменения и удаления, сделанные из моего фактического кода:
Entry.find(conditions)
.select('ymd intentions outcomes goalCounts')
.lean()
.exec()
.then(function (entries) {
if (!entries.length) {
res.write(']')
res.end()
}
entries[entries.length-1].isLast = true
// more processing of entries etc
}, function (err) {
// do something with error
})
Обычно это работает, но мой производственный сервер только что сообщил об ошибке: ошибка строки isLast=true
с
TypeError: Cannot set property 'isLast' of undefined
Поскольку здесь есть проверка, которая гарантирует, что сам массив не пуст, я знаю, что то, что было передано в эту функцию, было непустым массивом, последний элемент которого сам был неопределен.ymd
является обязательным полем, поэтому не должно быть никаких результатов, которые будут {}
.
Это ожидаемое поведение при каких-либо условиях (что-то связанное с lean()
?) Или оно представляеткакая-то ошибка монго?