У меня есть схема Мангуста, которая имеет довольно простую структуру, вместе с одним полем, которое является массивом объектов, то есть вложенным документом.Когда мой интерфейс публикует данные для добавления, в этом запросе могут присутствовать не все поля из схемы, и не всегда может быть вложенный документ для добавления в этот массив.Также поддокумент будет просто получен как 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
может присутствовать не всегда, и тогда следует создать пустой массив.