Как вставить или вставить схему в основную схему - PullRequest
0 голосов
/ 03 июня 2019

Здравствуйте, я новичок в этом и не понимаю, как можно сделать подход к этому.

У меня есть основная схема и пользовательская схема в том же файле модели. Сначала я регистрирую основную схему. После регистрации основной схемы я хочу зарегистрироваться для пользовательской схемы. Регистрация будет осуществляться пользователем основной схемы ( 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) =>{
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...