Я новичок в MongoDb и NodeJS. Я хочу создать коллекции таблицы.
Вот мой JSON ответ: -
{
"_id": "5c85f83516f5ad7ef3e14",
"companyName": "XYZ",
"fullName": "ABC",
"designation": "Software Engineer",
"companyID": "14224",
}
Здесь я получаю уникальный companyID
для конкретного companyName
. Я хочу создать столько коллекций, сколько будет уникальных companyID
. Как мне добиться этого с помощью NodeJS, кода ExpressJS?
РЕДАКТИРОВАТЬ: - файл контроллера.
module.exports.registerAdmin = (req, res, next) =>{
var admin = new Admin();
admin.companyName = req.body.companyName;
admin.email = req.body.email;
admin.password = req.body.password;
admin.fullName = req.body.fullName;
//----creating hash token for email verification ------------
const secret = crypto.randomBytes(20);
const hash = crypto.createHmac('sha256', secret)
.update(secret + admin.email)
.digest('hex');
//comapny id generate
const reqq = crypto.createHash('md5').update(admin.companyName).digest('hex');
let valueNum = reqq.match(/\d/g).join("").toString().substring(0,6);
admin.companyID = valueNum;
//saving users data to database
admin.save((err, doc) =>{
if(!err){
res.send(doc);
let coSchema = coName => {
return {
id: {type: String, index: true},
coName: {default: coName}
}
}
response.then((data) => {
let coSchema;
data.forEach((doc) => {
coSchema = coSchema(doc.companyID);
mongoose.model(doc.companyID, coSchema);
})
}
}
else{
if (err.code == 11000)
res.status(422).send(["Entered duplicate email address. Please check"]);
else
return next(err);
}
});
}
Модель: =
var adminSchema = new mongoose.Schema({
companyName : {
type: String,
required: "Company name can't be empty.",
required: false
},
companyID: {
type: String,
unique: true
},
email : {
type: String,
required: "Email can't be empty.",
unique: true
},
password: {
type: String,
required: "First name can't be empty."
},
fullName: {
type: String,
required: "First name can't be empty."
},
designation : {
type: String,
required: "Designation can't be empty."
}
});
mongoose.model('Admin', adminSchema);