2017-02-03 38 views
1

我可以在mongodb集合中添加新的参数,这些参数未在猫鼬模式中定义? 这里是我的架构无法添加未在猫鼬模式中定义的参数

var mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 

var UsersSchema = new Schema({ 
    FirstName : { 
     type : String  
    }, 
    LastName : { 
     type : String 
    }, 
    ProfileName : { 
     type : String 
    }, 
    EmailID : {  //This may actually take Phone Number depending on user account. 
     type : String, 
     required : true  
    }, 
    Login : { 
     type : { enum : ['Facebook', 'Gmail', 'Custom'] }, 
     required : true  
    }, 
    ContactNumber : 
    { 
     type : Number 
    }, 
    Address : { //Add Geo co-ordinates location later. 
     type : {} 
    }, 
    ProfilePic : { 
     type : String //URL to image 
    }, 
    Birthday : { 
     type : {}  
    }, 
    Gender : { 
     type : { enum : ['Male', 'Female']} 
    }, 
    CreatedDate : { 
     type: Date, 
     default: Date.now 
    }, 
    ModifiedDate : { 
     type: Date, 
     default: Date.now  
    }, 
    LastLogin : { 
     type: Date, 
     default: Date.now  
    } 

}); 

module.exports = mongoose.model('Users', UsersSchema); 

而且我想添加一些参数,如EmailVerifiedMobileNumberVerified 这里是我的路线代码实际上在MongoDB中

router.post('/api/signup',function(req,res){ 
    console.log("Registering user"); 

    var user = new Users(); 
    user.FirstName = req.body.FirstName; 
    user.LastName = req.body.LastName; 
    user.EmailID = req.body.EmailID; 
    user.Login = "Custom"; 
    user.Password = req.body.Password; 
    user.ProfileName = req.body.FirstName + " " +req.body.LastName; 
// user.Birthday = 
    user.Address = req.body.Address; 
    user.Gender = req.body.Gender; 
    user.EmailVerified = false; // dynamic parameter 
    user.MobileNumberVerified = false; // dynamic parameter 

// user.ContactNumber = req.body.ContactNumber; 
    user.save(function(err,user){ 
     if(err){ 
      console.log(err); 
      res.json(err); 
     }else{ 
      console.log("User Registered"); 
      res.json({result : 1}); 
     } 
    }); 

}); 

插入数据,但在MongoDB中,这些字段不存在。我认为猫鼬不允许动态添加参数。

+1

您应该使用猫鼬虚拟http://mongoosejs.com/docs/2.7.x/docs/virtuals.html – styopdev

+0

谢谢@styopdev。 'Users.set(“EmailVerified”,false);'对我来说工作正常。 –

回答

0

不支持在模型编译后添加到模型模式的路径。请不要这样做。