如何在插入或创建或保存在猫鼬中设置默认值

时间:2019-11-06 05:27:26

标签: node.js mongodb mongoose

在猫鼬中,我使用插入或保存在userRole集合中创建新文档,但它们未设置在猫鼬方案中定义的默认值。

let userRole = new Schema({
    roleName: { type: String },
    isActive: { type: String, enum: ["YES", "NO"], defalut: "YES" }
});

猫鼬提供setDefaultOnInsert选项,但仅适用于findOneAndUpdate。那么如何在创建新文档时使用保存或插入设置默认值?

createRole: (callback) => {
            let dataToSave = {roleName: "ADMIN"}
            return DBFunction.saveData(Models.userRole, dataToSave, (err, data) => {
                if (err) return callback(err);
                if (!data || !data._id) return callback("Something went worng!");
                logger.debug("\nUserRole Created --->>>\n", data)
                return callback(null, data);
            });
        }

数据库功能文件或DBFunction

exports.saveData = (model, data, callback) => new model(data).save((err, result) => err ? callback(err) : callback(null, result));

exports.insert = (model, data, options, callback) => model.collection.insert(data, options, (err, result) => err ? callback(err) : callback(null, result));

在mongodb中,创建的文档为

{
    roleName: "ADMIN"
}

我想要这样:

{
    roleName: "ADMIN",
    isActive: "YES"
}

1 个答案:

答案 0 :(得分:0)

您应该使用default选项。您的配置中有错字。您正在使用defalut