我有一个名为' someModel'如下
"someModel": [{
"type": "Booking",
"email": "sunny.wayne@some.com,mahela.jayawardane@some.com",
"isInstant": true,
"cutHours": 72,
"days": -1
},
{
"type": "Booking",
"email": "",
"isInstant": false,
"cutHours": 72,
"days": -1
},
{
"type": "Arrival",
"email": "mahela.jayawardane@some.com",
"isInstant": false,
"cutHours": 72,
"days": 1
},
{
"type": "Cancellation",
"email": "sunny.wayne@some.com",
"isInstant": false,
"cutHours": 72,
"days": -1
}
]

默认情况下,我需要一个包含4个此模型记录的数组,默认值如下
var SeasonSchema = new mongoose.Schema({
name: String,
from: Date,
to: Date
});
mongoose.model("Venue.seasons", SeasonSchema);
var HourSeasonSchema = new mongoose.Schema({
seasonref: {type: mongoose.Schema.Types.ObjectId, ref: 'Venue.seasons'},
"1" : DaySchema,
"2" : DaySchema,
"3" : DaySchema,
"4" : DaySchema,
"5" : DaySchema,
"6" : DaySchema,
"7" : DaySchema
});
var VenueSchema = new mongoose.Schema({
title: {type: String, default: ''},
description: {type: String, default: ''},
images: [mongoose.Schema.Types.Mixed],
address: AddressSchema,
flags: {
toddlers: Number
},
seasons: [SeasonSchema],
hours: [HourSeasonSchema]
});

这样做的理想方式是什么?我查看了createRecord,但一次只能创建一条记录。我的后端逻辑期望数据采用上述格式,我还必须更新根据用户操作创建的4条记录。
答案 0 :(得分:0)
使用hasMany关系中的另一个模型包装“ someModel”。
创建另一个模型,让我们称之为“ parentModel”。 在其模型定义中,将“ someModel”添加为具有hasMany关系的属性。
parentModel.js
export default DS.Model.extend({
someModel: DS.attr('someModel')
});
现在创建一个parentModel记录并向其中添加多达someModel记录并保存parentModel。
let pModel = this.get("store").createRecord("parentModel");
pModel.get("someModel").addObject(this.get("store").createRecord("someModel", {
type: "Booking",
email: "sunny.wayne@some.com,mahela.jayawardane@some.com",
isInstant: true,
cutHours: 72,
days: -1
}));
pModel.save();
查看您提供的JSON结构,您需要使用JSONSerializer和EmbeddedRecordsMixin在响应中获取someModel json。 还要确保为响应中的某些模型记录而撤消“ id”。
炭烬形成的请求就是这样
{
"someModel": [{
"type": "Booking",
"email": "sunny.wayne@some.com,mahela.jayawardane@some.com",
"isInstant": true,
"cutHours": 72,
"days": -1
}]
}