如何在mongoose中设置插入、创建或保存时的默认值



在猫鼬中,我使用insert或save在我的userRole集合中创建新文档,但他们没有设置猫鼬schemma中定义的默认值。

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

Mongoose提供了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"
}

您应该使用default选项。你的配置中有一个拼写错误。您正在使用defalut

最新更新