I’m using Mongoose ODM to partially validate models before they are stored to MongoDB.
Is it possible to relax Mongoose schemata so that a given part of the document is not validated? I have tried to the following:
var MySchema = new Schema({
user_id: { type: Schema.ObjectId, ref: 'User' },
freeform_data: {},
});
For instance if I set the contents to:
{
user_id: '123456',
freeform_data: {
dataitem1: 'a',
dataitem2: 'b',
items: [ 1, 2, 3, 4 ]
}
}
Then only user_id is stored, which makes perfectly sense security-wise.
How can I disable mongoose’s validation for this field?
I am using this application only for prototyping purposes so I don’t care about security right now (I just want to prototype).
When you modify the contents of a
Mixedfield like freeform_data, you need to notify Mongoose that you’ve changed its value by callingmarkModified(path)on the modified document or a subsequentsave()call won’t save it.For example: