Я динамически создаю коллекции с одинаковыми деталями схемы, каждая из которых имеет детали role : admin
с companyID
, companyName
и т. Д.
файл контроллера: -
const mongoose = require ('mongoose');
const Admin = mongoose.model('Admin');
var MongoClient = require('mongodb').MongoClient;
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.firstName = req.body.firstName;
admin.role = "admin";
admin.id = req.body._id;
const reqq = crypto.createHash('md5').update(admin.companyName).digest('hex');
let valueNum = reqq.match(/\d/g).join("").toString().substring(0,6);
admin.companyID = valueNum;
//sending data to register
admin.save((err, doc) =>{
if(!err){
res.send(doc);
//here creating collections dynamically.
let arr = Object.keys(doc.schema.paths); //doc.schema.paths if I need same ID / obj if different
let Obj = {};
arr.map(key => Obj[key] = doc[key]);
var thingSchema = new mongoose.Schema({}, { strict: false, collection: admin.companyName });
var Thing = mongoose.model(admin.companyName , thingSchema);
var thing = new Thing(Obj);
thing.save();
console.log(thing.id);
Теперь я хочу создать пример маршрута входа в систему: baserurl/login
.
Текущий файл маршрута входа в систему
Здесь я хочу передать Thing
вместо Admin
и перебрать каждую коллекцию.
router.post('/login' , (req, res, next) => {
Admin.find({email: req.body.email})
.exec()
.then(admin => {
if(admin.length < 1) {
return res.status(401).json({
message: "Auth failed. admin not found."
})
}
Вот так я могу войти из одной коллекции. Как я буду динамически проверять все коллекции из модели Thing
и разрешать вход в систему из коллекций, созданных из конкретной thingSchema
?