Mongoose更新查询 - RangeError:超出最大调用堆栈大小

时间:2018-04-30 09:18:03

标签: node.js mongodb mongoose

我从一个简单的mongoose查询得到 RangeError:超出最大调用堆栈大小,该查询在mongo native app中完美运行。我正在尝试从我的文档更新数组中的特定元素。

模式

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会引发范围错误。我错过了什么吗?

0 个答案:

没有答案