在猫鼬中,我使用插入或保存在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"
}
答案 0 :(得分:0)
您应该使用default
选项。您的配置中有错字。您正在使用defalut
。