'$ set'为空,即使不是

时间:2019-02-18 08:55:07

标签: javascript mongodb mongoose

我在更新MongoDB中的文档时遇到问题... 在params.sendingMethodPushTime和SmsTime中,我收到一个新的Date();

试图在更新函数本身中设置$集,并尝试使用硬编码值

userScheme.statics.updateAlertSendingTimes = function (params, cb) {
    var query = {uId: params.uIds};
    var set = {};
    if (params.alertType) {
        set['alertSendingTimes'] = {};
        set['alertSendingTimes'][params.alertType] = {};
        set['alertSendingTimes'][params.alertType]['push'] = params.sendingMethodPushTime;
        set['alertSendingTimes'][params.alertType]['sms'] = params.sendingMethodSmsTime;
        var update = {
            '$set': set
        }
        this.update(query, update, {upsert: true}, cb);
    } else {
        cb(null)
    }
};

$ set应该通过并且MongoDB文档已更新,但是我却得到$ set为空等

编辑:我的猫鼬版本为4.13.4,节点版本为6.16,params.alertType是动态接收的字符串(在我的情况下为'1'或'2')

1 个答案:

答案 0 :(得分:0)

问题出在方案上……这是警报,而不是警报