我想在mongodb中创建一个名为“ Admins”的集合。问题是新管理员只能由已经存在的管理员添加,但是在初始状态下我没有任何管理员。
在创建新集合时,最方便的方法是创建默认管理员?我的架构是
const adminSchema = new Schema({
email: {
type: String,
required: true,
unique: true,
lowercase: true
},
password: {
type: String,
required: true,
minlength: 4,
maxlength: 128
},
name: {
type: String,
maxlength: 50
}
}, {
timestamps: true
})
答案 0 :(得分:1)
您可以使用脚本(例如seed.js)安全插入所需数量的用户。
//seed.js
var Admin = require('../path/to/admin.js');
// you can refer any other flow to get count or number of record
Admin.countDocuments({}, function( err, count){
console.log( "Number of users:", count );
// decide ur other logic
// if count is 0 or less
if(count <= 0) {
var user = {
name: "Admin User",
email: "admin@gmail.com",
password: "admin"
}
Admin.create(user, function(e) {
if (e) {
throw e;
}
});
}
})
使用最新方法,您可以使用以下方式
try {
// you can refer here any other method to get count or number of record
let count = await Admin.countDocuments({});
if(count <= 0) {
var user = {
name: "Admin User",
email: "admin@gmail.com",
password: "admin"
}
const admin = new Admin(user);
await admin.save()
}
} catch (err) {
console.log(err);
}
在建立与mongodb的连接后,立即在您的seed.js
脚本中要求server.js or app.js
。完成播种后,注释或删除此行。
require('../path/to/seed');
希望这对您有帮助!