2017-02-03 7 views
1

mongooseスキーマで定義されていないmongodbコレクションに新しいパラメータを追加できますか? をEmailVerifiedとはここで実際にMongoDBmongooseスキーマで定義されていないパラメータを追加できません

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

}); 

にデータを挿入する私のルートコードがある をMobileNumberVerifiedしかし、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); 

であり、私はいくつかのパラメータを追加したいですフィールドは存在しません。私はmongooseが動的にパラメータを追加することを許可しないと思う。

+1

mongoose仮想を使用する必要があります。http://mongoosejs.com/docs/2.7.x/docs/virtuals.html – styopdev

+0

ありがとう@styopdev。 'Users.set(" EmailVerified "、false);'私のためにうまく動作します。 –

答えて

0

モデルのコンパイル後にモデルのスキーマにパスを追加することはサポートされていません。お願い、それはやめて。

関連する問題