仅在不存在时添加到域列表

问题描述 投票:0回答:1

我正在尝试创建一个带有可用季节列表的电视剧模式(使用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[]列表并检查它是否存在,如果没有,那么推新一季。

有没有更好的方法呢?

javascript react-native realm
1个回答
1
投票

我会在插入之前快速检查列表是否已包含季节:

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)
    }
})
© www.soinside.com 2019 - 2024. All rights reserved.