Создавайте коллекции в mongdb из nodejs - PullRequest
0 голосов
/ 12 марта 2019

Я передаю схему от модели к контроллеру.Я хочу создать коллекции в MongoDB, начиная с конкретного ответа JSON после публикации.

модель: -

const mongoose = require ('mongoose');
const bcryptt = require('bcryptjs');
const crypto = require('crypto');

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."
                }
});

mongoose.model('Admin', adminSchema);

Так что здесь я использую companyName длясоздать compantID в controller : -

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;


//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;
console.log(valueNum);

    admin.save((err, doc) =>{
        if(!err){
            res.send(doc);
            //todo something here to generate collection from valueNum
        }
        else{
            if (err.code == 11000)
                    res.status(422).send(["Entered duplicate email address. Please check"]);
            else
            return next(err);
            }
    });
}

Итак, я получаю companyID in valueNum.После admin.save я хочу передать valueNum в некотором коде, чтобы создать новую коллекцию того уникального valueNum, который будет в существующей БД.Если коллекция с определенным valueNum уже существует в БД, пропустите.

Все это произойдет при одном и том же обращении по URL.Ответ, который я получаю: -

{
    "_id": "5c874d88497ed26f233ffad5",
    "companyName": "Meta",
    "email": "xyzt@test.com",
    "fullName": "Aron",
    "companyID": "14624",

}

Как мне этого добиться?

Ответы [ 2 ]

0 голосов
/ 12 марта 2019

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

Динамически создавать коллекцию с помощью Mongoose

0 голосов
/ 12 марта 2019

Вы пытаетесь создать Коллекции или новые отдельные Документы?Я не совсем понимаю ваш вопрос.

Было бы много смысла, если бы вы пытались создать новый документ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...