當接收到前端傳回來的資料時,要如何在同一個 model 內同時查詢多個字串,是這篇要筆記的重點。
運用方法
JavaScript 的 split 來分割字串,然後遍歷每個字串產生 SQL 資料庫所需的語法字串,最後代入到 model 來做查詢並回傳 json 結果。
語法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
// 從前端網址列取得完整字串,用 split, map 完成SQL指令後,進行查詢 getMultipleCountries: (req, res) => { let query = req.query.q.split(',') query = query.map(item => { return { [Op.like]: '%' + item + '%' } }) Country.findAndCountAll({ include: [Category, Continent, Region], order: ['id'], where: { [Op.or]: { name: { [Op.or]: query }, nameEn: { [Op.or]: query } } } }).then(countries => { return res.json({countries: countries}) }) } |