ほねっとのぶろぐ

アニメとAndroidが好きなほねっとのブログです。

NodeJS用ORM "Sequelize"でrelationを設定し、データをJOINして取得する

f:id:aftercider:20160103163837p:plain

挨拶

前回はnodeJS用ORMライブラリ、Sequelizeで、SQLite3を使う方法を紹介しました。

t.co

Sequelize全体については、公式ドキュメントが一番役に立ちます。
Sequelize | The Node.js / io.js ORM for PostgreSQL, MySQL, SQLite and MSSQL 

今回は、SequelizeでRelations / Associationsを作成し、idでデータをJOINして
取得する方法を紹介します。

ファイル構成

directory
├sequelize-relation.db  (sequelize-relation.db - Google ドライブ)
└sequelize-relation.js

 

実行

$ npm install sequelize
$ npm install sqlite3
$ node sequelize-relation.js

 

処理の流れ

  1. Sequelizeをrequire
  2. SQLite3の読み込み
    公式ドキュメントでは以下に説明があります。MySQLとは若干ちがいます。

    Getting Started - Sequelize | The Node.js / io.js ORM for PostgreSQL, MySQL, SQLite and MSSQL

  3. データ型の宣言 テーブル名: places, prefectures
  4. placesとprefecturesの間のrelationを設定
  5. option.includeのパラメータを作成し、find時にデータをJOINする様設定
  6. findAllして、console.logのJSONとして出力 

結果

[
{
"id": 1,
"name": "札幌市時計台",
"prefecture_id": 1,
"prefecture": {
"id": 1,
"name": "北海道"
}
},
{
"id": 2,
"name": "青森県立三沢航空科学館",
"prefecture_id": 2,
"prefecture": {
"id": 2,
"name": "青森県"
}
}
]

宣伝

水樹奈々さんや田村ゆかりさん、μ'sといった声優さんや、
でんぱ組.incといったアイドルさんの、
ファン向けAndroidアプリを作ってます!ぜひおためしくださいませ!

Aftercider - Google Play の Android アプリ

  alt=

Gist

Gistにもあげてみました。

NodeJSのORMライブラリSequelizeで、relationを設定して、JOINしたデータを ...