Using the following schema:
{
data1: String,
nested: {
nestedProp1: String,
nestedSub: [String]
}
}
When I do new MyModel({data1: 'something}).toObject()
shows the newly created document like this:
{
'_id' : 'xxxxx',
'data1': 'something',
'nested': {
'nestedSub': []
}
}
I.e. the nested document is created with the empty array.
How do I make "nested" to be fully optional - i.e. not created at all if it is not provided on the input data?
I do not want to use a separate schema for the "nested", no need of that complexity.
The following schema satisfies my original requirements:
With this, new docs are created with "missing" subdocument, if one is not specified.
A solution without additional Schema object could use a hook like the following
You can use
strict: false
And then the schema is fully optional. To set only
nested
as fully optional maybe you can do something like:But I have never tried