
はじめましてこんにちは、ひょうどうです。
今回は、GCP(Google Cloud Platform)のサービスの一つ、Cloud DatastoreをNode.jsで使用する方法をメモします。
Cloud Datastoreについて
Datastoreとは、NoSQL型で可用性が非常に高いデータベースです。
Datastoreの詳細については公式ドキュメントを参照ください!
使い方
kind変数:テーブル名
更新
const datastoreUpdate = async (id, kind, data) => {
let key = ''
if (id) {
key = datastore.key([kind, parseInt(id, 10)])
} else {
key = datastore.key(kind)
}
await datastore.save({
key,
data
})
}
追加
const datastoreInsert = async (kind, data) => {
await this.datastoreUpdate(null, kind, data)
}
先程の更新処理を再利用します。
取得(条件あり)
const datastoreGetWhere = async (kind, columnName, data) => {
let query = ''
if (columnName) {
query = datastore.createQuery(kind).filter(columnName, '=', data)
} else {
query = datastore.createQuery(kind)
}
const [entities] = await datastore.runQuery(query)
return entities
}
取得(条件なし)
const datastoreGet = async kind => {
const entities = await this.datastoreGetWhere(kind, null, null)
return entities
}
取得(1つだけ)
const datastoreGetFindBy = async (kind, columnName, data) => {
let query = ''
if (columnName) {
query = datastore.createQuery(kind).filter(columnName, '=', data)
} else {
query = datastore.createQuery(kind)
}
const [entities] = await datastore.runQuery(query)
return entities[0]
}
ユニークに設定したcolumnのみに使用します。