我目前暴力破解這個,但我相信有一個使用Sequelize,有問題的代碼更好的解決方案(使用的是Postgres):從Sequelize選擇隨機記錄的findAll
...
then((tile_data) => {
return Encounter.findAll({
where: {
level: tile_data.dataValues.level
},
transaction: transaction_data
}).then((encounter_data) => {
let encounter = encounter_data[Math.floor((Math.random() * encounter_data.length))].dataValues
return Battle.create({
character_id: character_data.dataValues.id,
encounter_id: encounter.id,
encounter_hp: encounter.max_hp,
encounter_mana: encounter.max_mana
}, {
transaction: transaction_data
})
...
從看似
除了'醜陋',使用這段代碼,我將所有ENCOUNTERS加載到內存中,只是爲了從數組中抽取一個元素。
有誰知道如何通過Sequelize做到這一點,理想情況下不使用原始查詢?
謝謝