捕获猫鼬中的非模式字段

时间:2019-11-29 18:29:20

标签: node.js mongodb express mongoose

我注意到可以在Mongoose中定义严格/非严格模式(例如Add field not in schema with mongoose),但是我想在两者之间进行设置。

例如,假设以下严格的架构要求:

const schema = 
{
    email:
    {
        type: String,
        required: true,
        unique: true,
        lowercase: true,
        validate: value => { if (!validator.isEmail(value)) throw new Error('Invalid Email'); }
    },
    name:
    {
        type: String,
        required: true
    }
};

...以及以下发布的输入:

{
    "email": "luke@skywalker.com",
    "name": "Luke Skywalker",
    "age": "32",
    "sex": "male",
    "hairColour": "blonde"
}

我希望猫鼬将以下内容输出到mongodb:

{
    "email": "luke@skywalker.com",
    "name": "Luke Skywalker",
    "non-compliant": 
    {
        "age": "32",
        "sex": "male",
        "hairColour": "blonde"
    }
}

我不会事先知道非架构字段,因此无法为它们单独编码。在处理任何输入中与架构兼容的字段之后,我基本上只是想把剩下的所有内容都收集起来。

0 个答案:

没有答案