如何通过路由功能将模式数据保存到另一个集合

时间:2019-05-06 06:31:19

标签: node.js express mongoose

您好,我对快递路线不太了解,因为我是mongodb后端的新手。

在下面的路由中,我通过将架构值重置为true来验证电子邮件。现在,我要将新的架构详细信息复制到另一个现有集合中。我该怎么办?

router.get('/:adminId/verifyAdmin',function(req,res){

    console.log('request recieved');
    Admin.findOne( {_id: req.params.adminId })
       .exec()
       .then(admin => {

            const Thing = mongoose.model(admin.companyName);
            const emailTokenn = req.query.id;
            //console.log(emailTokenn);
            Thing.updateOne( { emailResetTokenn: emailTokenn },{ $set: { verified: true }},(err) =>{

            if(!err){
                return res.redirect('https://localhost:3000/fw18/index.html');  
            }
            else{
                throw err;
            }                         
          });
       });
});

在这里,我要将Thing集合详细信息传递/复制/保存到数据库中的现有集合名称users

编辑:-尝试过但导出错误:-const User = mongoose.model('User');

Thing.updateOne( { emailResetTokenn: emailTokenn },{ $set: { verified: true }},(err) =>{
            if(!err){
                //add Thing Schema  to Users collection
                Thing = mongoose.model(admin);
                var copy = mongoose.model('admin', admin,'User');  

                 admin.save(function(err){});

                return res.redirect('https://s3.ap-south-1.amazonaws.com/fw18/index.html'); 
            }

错误:- MissingSchemaError: Schema hasn't been registered for model纠正我。

1 个答案:

答案 0 :(得分:0)

Http是无状态协议。要维持应用程序的状态,您可以使用

1)会话

2)Cookie和

3)查询字符串。

根据您的情况,您可以使用会话进行处理。 将信息存储到会话,并从不同的路由获取存储的信息。