Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SequelizeのPaginationで苦労した話
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
KSK
June 26, 2018
Programming
740
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SequelizeのPaginationで苦労した話
KSK
June 26, 2018
More Decks by KSK
See All by KSK
Supernova Studio 使いはじめてみたら割と良さそう / supernova_studio
ksk1030m
1
900
CSV出力 - Viewからやるか? 他からやるか? / How to output CSV
ksk1030m
1
670
4画面出力とレシート印刷で作る体験型デジタルサイネージ / Unity signage
ksk1030m
1
3.2k
実録リファラル採用-僕と副社長の1827日- / my referral
ksk1030m
0
1.2k
GitLabを仕事で使っていた私が思うことをつらつらと / about GitLab
ksk1030m
1
1.1k
エンジニア目線で考えるPR戦略 / PR by Engineer
ksk1030m
1
1.5k
Metabase ライブ環境構築 / metabase_live_coding
ksk1030m
0
370
昔の自分に伝えたい容量回復のためのDockerの仕組み / docker_tips
ksk1030m
1
580
Capistranoの罠と他人がハマった事例を見て思うこと / capistrano-trap
ksk1030m
0
350
Other Decks in Programming
See All in Programming
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
4.8k
エンジニアと一緒にテストコードの設計と実装を改善した話
mototakatsu
0
250
Spec Driven Development | AI Summit Lisbon
danielsogl
PRO
0
230
関数型プログラミングのメリットって何だろう?
wanko_it
0
110
Signal Forms: Details & Live Coding @enterJS 2026 in Mannheim
manfredsteyer
PRO
0
210
jQueryをバージョンアップする前に使いたいjQuery Migrate
matsuo_atsushi
0
630
分散システム、なんですぐ死んでしまうん?耐障害性を高めたいあなたのためのレジリエンスパターン入門
mshibuya
7
1.9k
エンジニア向け会社紹介/Findy Company Profile
findyinc
6
360k
才能?センス?知らん、 続けたもん勝ちだ。-- 結婚・出産・癌を越えてなお、私がプロダクトを創り続ける理由
16bitidol
2
670
TAKTでAI駆動開発の品質を設計する
j5ik2o
7
1.6k
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
3
820
自作OSでスライド発表する
uyuki234
1
3.6k
Featured
See All Featured
Balancing Empowerment & Direction
lara
6
1.2k
BBQ
matthewcrist
89
10k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
55k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
630
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
190
Facilitating Awesome Meetings
lara
57
7k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
62
44k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
960
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
550
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.4k
Transcript
Sequelizeͷ PaginationͰ ۤ࿑ͨ͠ kskn / 2018.06.28 @Roppongi.js #4
ࣗݾհ ɾKeisuke Nakatane (@kskn) ɾORSO Inc. ৽نࣄۀ։ൃࣨ ɾαʔόɿΞϓϦɿϑϩϯτ ʹɹ̓ɹɿɹ̍ɹɿɹ̎ɹɹ͘Β͍ ɾલ৬ژͷήʔϜͰਓࣄ
ߏͬ͘͟Γ͜Μͳײ͡ ʢཧπʔϧʣ ʢΞϓϦʣ ʢAPIαʔόʣ
What’s Sequelizeʁ
None
Sequelize ɾNode.js ༻ͷOR Mapper ɹ- http://docs.sequelizejs.com/ ɹ- Rails Ͱ͍͏Active Record
ɾҰ൪ϝδϟʔͰΓ͍ͨ͜ͱͰ͖ͦ͏ ɾݹ͍ใώοτ͢ΔͷͰҙ (ver 3.x) ɹ- ࠷৽ ver 4.38 ͱ ver 5 Beta (2018/06/24)
How to Paginate
Pagination ɾOffset ɹ- ࠷ॳ͔Β nϨίʔυΛಡΈඈ͢ ɹɹˠ ख͚ܰͩͲύϑΥʔϚϯεͱਫ਼ ❌ ɾCursor ɹ-
SELECT ͷ։࢝ҐஔΛࢦఆ ɹɹˠ ͬͪ͜ͰΓ͍ͨ
Pagination ɾOffset ɹ- ࠷ॳ͔Β nϨίʔυΛಡΈඈ͢ ɹɹˠ ख͚ܰͩͲύϑΥʔϚϯεͱਫ਼ ɾCursor ʢࣺͯΔʣ ʢಡ·ͳ͍ʣ
Pagination ɾOffset ɹ- ࠷ॳ͔Β nϨίʔυΛಡΈඈ͢ ɹɹˠ ख͚ܰͩͲύϑΥʔϚϯεͱਫ਼ ɾCursor SELECT *
FROM users ɹORDER BY id LIMIT 10 OFFSET 30 SELECT * FROM users ɹWHERE id > 30 ORDER BY id LIMIT 10
Pagination / multi cursor ɾෳΧϥϜͰιʔτ͢Δ߹Ͳ͏ͳΔ͔ʁ ɹˠ ߦࣜ SELECT * FROM
users ɹWHERE (age, id) > (20, 30) ɹORDER BY age, id ɹLIMIT 10
by Sequelizeʁ
by Sequelize ɾ୯ҰΧϥϜͷ߹ ɹ- $gt ʮ > ʯ(greater than)
User.findAll({ ɹwhere: { id: { $gt: 30 } }, ɹorder: [['id', 'ASC']], ɹlimit: 10, })
by Sequelize / multi cursor ɾΧϥϜʹ (age, id) Έ͍ͨͳࢦఆͰ͖ͳ͍ ɾsequelize.literal('
SQLจ ‘) Ͱॻ͚Δ User.findAll({ ɹwhere: ɹɹsequelize.literal('(age, id) > (20, 30)'), ɹorder: [['age', 'ASC'], ['id', 'ASC']], ɹlimit: 10, })
Summary ɾ࣮ࡍ൚༻ϞδϡʔϧԽΛࢦͨ݁͠Ռɺ ɹຐվؾຯ… ɹ- GraphQLͱͷབྷΈ ɹ- GROUP BYͱซ༻Ͱ͖ΔΑ͏ʹ ɹ- DATEܕͷ߹CASTͨ͠Γ
ɾGarphQLରԠࠐΈͰϥΠϒϥϦԽͰ͖ͨΒ ɹधཁ͋Δʁ ɾSequelizeɺѱ͘ͳ͍ͱࢥ͏Αʂ
Thank you for listeningʂ