我正在尝试创建一个带有可用季节列表的电视剧模式(使用RealmJS),我不想在Seasons[]
列表中添加重复的季节数。
这就是我所拥有的:
TvSeries.schema = {
name: 'TvSeries',
primaryKey: 'mediaId',
properties: {
mediaId: 'string',
seasons: 'Seasons[]'
}
}
Seasons.schema = {
name: 'Seasons',
primaryKey: 'seasonNumber',
properties: {
seasonNumber: 'int'
}
}
realm.write(() => {
let season = realm.create('Seasons', { seasonNumber: seasonNumber }, true)
let tvShow = realm.create('TvSeries', mediaObject, true)
let seasonsList = tvShow.seasons
seasonsList.push(season)
})
当我添加新剧集(此处未显示)时,它将再次添加电视剧数据和季节,并且由于一季中有多集,它将多次添加到Seasons[]
列表。
我的想法是通过Seasons[]
列表并检查它是否存在,如果没有,那么推新一季。
有没有更好的方法呢?
我会在插入之前快速检查列表是否已包含季节:
realm.write(() => {
let season = realm.create('Seasons', { seasonNumber: seasonNumber }, true)
let tvShow = realm.create('TvSeries', mediaObject, true)
let seasonsList = tvShow.seasons
if (seasonsList.filtered("seasonNumber == $0", season.seasonNumber).length == 0) {
seasonsList.push(season)
}
})