Google Cloud Datastore 是一個 NoSQL 資料庫服務,提供高可用性、可擴展性及可靠性,並支援一致性分佈式數據存取。@google-cloud/datastore
是 Google Cloud 提供的 Node.js SDK,方便開發者輕鬆地與 Datastore 互動。本文將介紹 @google-cloud/datastore
的基本用法,並提供一些範例。
1. 安裝套件
首先,使用 npm 或 yarn 安裝 @google-cloud/datastore
套件:
npm install @google-cloud/datastore
2. 初始化 Datastore 客戶端
在程式碼中,您需要初始化 Datastore 客戶端,以便與 Datastore 服務通訊。
const Datastore = require('@google-cloud/datastore');
const datastore = new Datastore();
3. 定義資料模型
Datastore 使用 Entity 來儲存資料,Entity 有 Key 和 Properties 兩部分。Key 用於唯一識別 Entity,Properties 則儲存資料本身。
const kind = 'Task';
const task = {
key: datastore.key([kind, 'task-id']),
data: {
name: 'Buy groceries',
completed: false,
},
};
在以上程式碼中,我們定義了一個名為 Task
的 Entity 類型,並建立了一個新的 Task
Entity,並設定其 Key 和 Properties。
4. 儲存資料
使用 datastore.save()
方法儲存 Entity 到 Datastore 中。
datastore
.save(task)
.then(() => {
console.log(`Task ${task.key.id} saved`);
})
.catch(err => {
console.error('Error saving task:', err);
});
5. 查詢資料
使用 datastore.createQuery()
方法建立查詢,並使用 datastore.runQuery()
方法執行查詢。
const query = datastore.createQuery(kind)
.filter('completed', '=', false);
datastore.runQuery(query)
.then(results => {
const entities = results[0];
console.log('Incomplete tasks:');
entities.forEach(entity => {
console.log(`- ${entity[datastore.KEY].id}: ${entity.name}`);
});
})
.catch(err => {
console.error('Error running query:', err);
});
以上程式碼會查詢所有 completed
屬性為 false
的 Task
Entity,並輸出其 id
和 name
屬性。
6. 更新資料
使用 datastore.update()
方法更新已存在的 Entity。
const taskKey = datastore.key([kind, 'task-id']);
datastore.get(taskKey)
.then(results => {
const entity = results[0];
entity.completed = true;
datastore.update(entity)
.then(() => {
console.log(`Task ${entity[datastore.KEY].id} updated`);
})
.catch(err => {
console.error('Error updating task:', err);
});
})
.catch(err => {
console.error('Error getting task:', err);
});
以上程式碼會先取得 task-id
對應的 Task
Entity,並修改其 completed
屬性為 true
,最後更新資料到 Datastore 中。
7. 刪除資料
使用 datastore.delete()
方法刪除 Entity。
const taskKey = datastore.key([kind, 'task-id']);
datastore.delete(taskKey)
.then(() => {
console.log(`Task ${taskKey.id} deleted`);
})
.catch(err => {
console.error('Error deleting task:', err);
});
以上程式碼會刪除 task-id
對應的 Task
Entity。
結論
本文介紹了 Node.js @google-cloud/datastore 套件的基本用法,包括初始化客戶端、定義資料模型、儲存、查詢、更新和刪除資料。您可以根據自己的需求,使用這些方法操作 Datastore 資料庫。
需要注意的是,@google-cloud/datastore
套件提供了更多進階功能,例如事務處理、索引建立等,您可以參閱官方文檔瞭解更多資訊。