2014-10-13 19 views
5
var post = mongoose.Schema({ 
    ... 
    _createdOn: Date 
}); 

Voglio permettere impostando il campo _createdOn solo al momento la creazione di documenti, e non consentire la modifica su aggiornamenti futuri. Come è fatto in Mongoose?mangusta: non consentire l'aggiornamento dei campi specifici

+0

Vedi http : //docs.mongodb.org/manual/reference/operator/update/setOnInsert/ – arun

risposta

9

ho raggiunto questo effetto impostando la _createdOn in pre dello schema di salvataggio gancio (solo su prima salvare):

schema.pre('save', function(next) { 
    if (!this._createdOn) { 
     this._createdOn = new Date(); 
    } 
    next(); 
}); 

... e non consentire modifiche da nessun'altra parte:

userSchema.pre('validate', function(next) { 
    if (self.isModified('_createdOn')) { 
     self.invalidate('_createdOn'); 
    } 
}); 
Problemi correlati