猫鼬可以处理多少个级别的子文档?我有一个相当复杂的Schema,其结构如下(不是最好的结构,但是我试图保留来自早已消失的人开发的前端的JSON文档):
const LineItemSchema = new Schema({
amount: Number,
frequency: String,
hourlyHours: Number,
hourlyPeriod: String
});
const IncomeSourceSchema = new Schema({
has: Boolean,
lineItems: [{LineItemSchema}]
});
const AdultSchema = new Schema({
name: String,
incomeTypes: {
military: {
isApplicable: Boolean,
sources: {
basic: {IncomeSourceSchema},
allowance: {IncomeSourceSchema}
}
}
});
const DataSchema = new Schema({
adults: [AdultSchema],
signed: {Date, default: Date.now}
});
module.exports = mongoose.model("Data", DataSchema);
这很好,但是当我发送以下JSON时:
{
signed: 10/10/2020,
adults: [{
name: "John Doe",
incomeTypes: {
military: {
isApplicable: true,
sources: {
basic: {
has: true,
lineItems: {
amount: 15,
frequency: "hourly",
hourlyHours: 40,
hourlyPeriod: "weekly"
}
}
}
}
}
在我的控制器中,我将其映射如下:
let appData = new Data({
signed: req.body.signed,
adults:[{
name: req.body.adults[0].name,
incomeTypes: {
military: {
isApplicable: req.body.adults[0].incomeTypes.military.isApplicable,
sources: {
basic: {
has: req.body.adults[0].incomeTypes.military.sources.basic.has,
lineItems: {
amount: req.body.adults[0].incomeTypes.military.sources.basic.lineItems.amount,
//etc...
}
}
}
}
})
我在Mongo中看到以下内容:
adults: [{
name: "John Doe",
incomeTypes: {
military: {
isApplicable: true
}
}
我做错什么了吗?仅供参考,我已经对实际代码进行了重大修改,因为其中有很多内容……但这是我正在做的事情的基本要点。