Как избежать повторений схемы в модели MONGODB - PullRequest
0 голосов
/ 09 января 2019

Рассмотрим document, упомянутый ниже

const testSchema = new mongoose.Schema({
    test1: {
        name: String,
        email: String
    },
    test2: {
        name: String,
        email: String
    }
    test3: {
        name: String,
        email: String
    }
    test4: {
        name: String,
        email: String
    }
});

В приведенной выше модели test1, test2, test3... содержит повторяющиеся данные. Есть ли способ избежать этого метода?

1 Ответ

0 голосов
/ 09 января 2019

Предполагая, что ваша схема содержит список записей, вы можете хранить их, например,

const RecordsSchema = new mongoose.Schema({
    name: {              //
        type: String,    //
        required: true,  //     dummy
        maxLength: 254   //              
    },                   //
    tests: {
        type: [mongoose.Schema.ObjectId],
        ref: 'TestSchema',
        required: false
    }
}

const TestSchema = new mongoose.Schema({
    name: {
        type: String,
        required: true,
        maxLength: 254
    },
    email: {
        type: String,
        required: true,
        maxLength: 254,
        trim: true
    }
}

Таким образом, вы создаете модель, которая будет определять все тесты независимо, и ваш контроллер может затем связать этот объект Test с массивом, расположенным в модели RecordsSchema

...