Fork me on GitHub



Each SchemaType that you define (you can read more about them in the model definition chapter ) can have a default value.

Default values are applied when the document skeleton is constructed. This means that if you create a new document (new MyModel) or if you find an existing document (MyModel.findById), both will have defaults provided that a certain key is missing.


You can define a default with a function:

new Schema({
    date: { type: Date, default: }

or a value:

new Schema({
    date: { type: Date, default: '12/10/1990' }

Notice that defaults are automatically casted. In both cases, the defaults will become actual Date objects, but we're passing a timestamp first, and a string date second.