Mongoose добавить документ, содержащий вложенные документы - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть схема Мангуста, которая имеет довольно простую структуру, вместе с одним полем, которое является массивом объектов, то есть вложенным документом.Когда мой интерфейс публикует данные для добавления, в этом запросе могут присутствовать не все поля из схемы, и не всегда может быть вложенный документ для добавления в этот массив.Также поддокумент будет просто получен как status_value, а затем серверная часть поместит его в массив.

var auditSchema = mongoose.Schema({
    type: {
        type: String,
        default: ""
    },
    name: {
        type: String,
        default: ""
    },
    ui: {
        type: String,
        default: ""
    },
    account_number: {
        type: String,
        default: ""
    },
    lender: {
        type: String,
        default: ""
    },

    scanner_ui: {
        type: String,
        default: ""
    },
    lead_provider: {
        type: String,
        default: ""
    },
    lead_provider_ui: {
        type: String,
        default: ""
    },

    status: {
        type: [{
            status_value: {
                type: String,
                enum: ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']
            },
            status_date: {
                type: Date,
                default: Date.now
            }
        }],
        default: []
    },

    bill_date: Date,
    requests: {
        type: String,
        default: ""
    },

    total_advanced: {
        type: String,
        default: ""
    },
    interest_overcharged: {
        type: String,
        default: ""
    },
    stat_interest_due: {
        type: String,
        default: ""
    },
    overpayment_due: {
        type: String,
        default: ""
    },
    term_of_loan: {
        type: String,
        default: ""
    },
    redeemed: {
        type: String,
        default: ""
    },
    date_audit_sent: Date,
}, {
    strict: true,
});

Когда я делаю Audit.Create(), идеальная ситуация будет просто сделать Audit.Create(req) однако это не будет правильно создавать вложенный документ status.Каков наилучший способ создания вложенного документа, зная, что status_value может присутствовать не всегда, и тогда следует создать пустой массив.

...