Здравствуйте, я новичок в этом и не понимаю, как можно сделать подход к этому.
У меня есть основная схема и пользовательская схема в том же файле модели. Сначала я регистрирую основную схему. После регистрации основной схемы я хочу зарегистрироваться для пользовательской схемы. Регистрация будет осуществляться пользователем основной схемы ( admin ). Поэтому я также создал логин для admin и создаю систему доступа JWT. В той же системе я хочу зарегистрировать пользователей сейчас и хочу поместить его в массив, упомянутый в основной схеме.
Я создал отдельный контроллер для пользовательской схемы, но он создает новую коллекцию на mongodb.
Как я могу нажать на массив объекта того же документа ???
Это модель: -
var userrSchema = new mongoose.Schema({
email : {
type: String,
required: "Email can't be empty.",
// unique: true
},
password: {
type: String,
required: "Password name can't be empty."
},
firstName : {
type: String,
required: "First name can't be empty."
},
lastName : {
type: String,
required: "Last name can't be empty."
},
phoneNumber : {
type: String,
required: "Reqired for further contact. Can't be empty."
},
verify: String,
role: String,
emailResetTokennn: String,
emailExpiress: Date,
saltSecret: String
});
mongoose.model('Userr' , userrSchema);
//define admin(main) schema
var adminSchema = new mongoose.Schema({
companyName : {
type: String,
required: "Company name can't be empty.",
required: false
},
companyID: {
type: String,
},
address : {
type: String,
required: "Address can't be empty.",
},
contactDetails : {
type: String,
required: "Company contact number can't be empty.",
},
admins: {
_id: mongoose.Schema.Types.ObjectId,
email : {
type: String,
required: "Email can't be empty.",
unique: true
},
password: {
type: String,
required: "Password name can't be empty."
},
firstName : {
type: String,
required: "First name can't be empty."
},
lastName : {
type: String,
required: "Last name can't be empty."
},
phoneNumber : {
type: String,
required: "Reqired for further contact. Can't be empty."
},
designation : {
type: String,
required: "Designation can't be empty."
},
verified: String,
role: String,
emailResetTokenn: String,
emailExpires: Date,
saltSecret: String,//this is user for encryption and decryption of password
users:[ { type: mongoose.Schema.Types.ObjectId, ref: 'Userr' } ]
}
});
mongoose.model('Admin', adminSchema);
РЕДАКТИРОВАТЬ: - Добавлен основной контроллер: -
module.exports.registerAdmin = (req, res, next) =>{
var admin = new Admin();
admin.companyName = req.body.companyName;
admin.address = req.body.address;
admin.contactDetails = req.body.contactDetails;
admin.admins = {
email : req.body.email,
password: req.body.password,
firstName : req.body.firstName,
lastName : req.body.lastName,
phoneNumber : req.body.phoneNumber,
designation : req.body.designation,
role : "admin",
verified :"false",
users: []
};
admin.save((err, doc) =>{