传递模式值代替数组以使用mongoose创建文档

时间:2019-04-04 10:22:25

标签: node.js express mongoose

我想在代码中的数组位置传递模式详细信息。如何在控制器中执行此操作?

O(n)

O(2n)处,我需要传递Schema模型的详细信息,以便可以使用它在代码中创建的集合内创建文档。

编辑:- 架构模块文件。

module.exports.registerAdmin = (req, res, next) =>{ 
    var admin = new Admin();
    admin.email = req.body.email;
    admin.password = req.body.password;
    admin.firstName = req.body.firstName;
    admin.lastName = req.body.lastName;

    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);

 const arrayObj = [{con:'IND'},{con:'USA'},{con:'JPN'}];

    admin.save((err, doc) =>{
        if(!err){

            res.send(doc);

            var thingSchema = new mongoose.Schema({}, { strict: false, collection: valueNum });
            var Thing = mongoose.model(valueNum , thingSchema);
            var thing = new Thing(arrayObj); 
            thing.save();
            console.log(thing);

MongoDB嵌套对象:-

this source

1 个答案:

答案 0 :(得分:0)

如果您尝试将admin文档传递到new Thing(),则首先尝试获取其doc.schema.objdoc.schema.paths(如果您需要相同的{{ 1}}),然后将所有属性放入一个数组中,创建一个具有键值对的对象,并将其传递给_id

new Thing(arrObj)

我注意到您在实例化admin.save((err, doc) =>{ if(err) return err; res.send(doc); let arr = Object.keys(doc.schema.obj); let arrObj = {}; arr.map(key => arrObj[key] = doc[key]); var thingSchema = new mongoose.Schema({}, { strict: false, collection: valueNum }); var Thing = mongoose.model(valueNum , thingSchema); var thing = new Thing(arrObj); thing.save(); console.log(thing); }) 模型之前发送了文档(res.send(doc)),请确保Thing仅终止HTTP响应,并且不会阻止您的代码运行,但这您唯一可以发送的回复。您只能发送一个回复。