有想到什麼再寫什麼,沒想到什麼就算了

node.js @google-cloud/datastore 的用法

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 屬性為 falseTask Entity,並輸出其 idname 屬性。

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 套件提供了更多進階功能,例如事務處理、索引建立等,您可以參閱官方文檔瞭解更多資訊。

提示