Я получаю RangeError: Максимальный размер стека вызовов превысил из простого запроса mongoose, который отлично работает в приложении mongo. Я пытаюсь обновить определенный элемент в массиве из моего документа.
Схема
const UserSchema = new mongoose.Schema({
username: {
type: String,
unique: true,
required: true,
trim: true
},
discovery: []
})
Маршрут
router.post(
'/discovery/:page',
session.requiresLogin,
(req, res, next) => {
indexController.discovery(req, res)
}
)
Контроллер
discovery: (req, res) => {
userModel.update({
username: req.session.username,
'discovery.name': req.params.page
}, {
$set: {'discovery.$.status': true}
}, (err) => {
if (err) throw err
res.status(200).send({
status: err ? 201 : 200,
msg: err ? 'Error' : 'Success'
})
})
}
Модель
UserSchema.statics.update = (fquery, uquery, callback) => {
User.update(fquery, uquery, (err) => {
if (err) return callback(err)
callback(null)
})
}
Массив обнаружения - это объект, заполненный name [String]
и status [Boolean]
Когда я запускаю этот запрос в собственном приложении mongo, объект корректно обновляется, но через приложение моего узла mongoose выдает ошибку диапазона. Я что-то упустил?