[Arango DB] Graph Database – Query 003 – CRUD Operations

【前情提要】

對於資料庫,我們時常提出增刪查改,也就是俗稱的 CRUD(Create, Read, Update, Delete)操作。在之前我們都只讀取資料,那這期呢則會進入編輯修改的操作。我們廢話不多說趕緊開始吧。

【重點整理】

  1. 透過 REPLACE 能修改整個資料,而不僅僅選擇的屬性

【預計內容】

  1. 新增資料
  2. 更新資料
  3. 刪除資料

【主要內容】

1. 新增資料

那首先當然是最重要的部分 — 建立資料,下方範例 INSERT 自製的假資料。執行後,應該會顯示寫入了幾筆,我們再去資料庫中檢查。發現新的資料確實存進去了。

GraphQL
INSERT {
  "artist_id": 2420,
  "full_name": "BaBaoChou",
  "nationality": "R.O.C.",
  "style": "Beginner"
} INTO artist_vertices

2. 修改資料

今天我覺得資料有誤了,怎麼可能只有新手等級呢?這時,我們能透過 UPDATE 與 _key 來進行修改。有興趣的也可以多研究下 INSERT 的 overwrite 屬性,相對我不太推薦增加改動的風險。

那下方,我們只修改我們的繪畫風格的屬性。

GraphQL
UPDATE "22212" WITH {
  "style": "Pro Digital Painting"
} in artist_vertices

但我們能想像,我們能修改更多甚至新增屬性,但如何刪除呢?這時,我們就要依靠 REPLACE 方法,它會覆蓋掉所有的資料欄位。如下方,扣掉索引值最後只會保存兩種屬性。

GraphQL
REPLACE {
  _key: "22212",
  artist_id: 2420,
  "style": "Digital Painting"
} IN artist_vertices

3. 刪除資料

那今天如果有不想要的資料,我們不可能讓它活在資料庫中占位置。因此,我們接著就要用 REMOVE 方法透過 _key 刪除資料,或者利用 DOCUMENT 來刪除。

GraphQL
REMOVE "22212" IN artist_vertices
GraphQL
REMOVE DOCUMENT("artist_vertices/22212") IN artist_vertices

【後話】

那在這篇,我們簡單的講過如何編輯資料。那 Query 的基本操作大概也到這邊為止,之後有機會再推出進階的語法。那之後將先把資料備份的方法為主軸,盡快讓文章與各位會面。

【參考資料】

[1] Data Queries
https://docs.arangodb.com/3.12/aql/data-queries/#data-modification-queries

【延伸閱讀】

[1] INSERT
https://docs.arangodb.com/3.12/aql/high-level-operations/insert/

[2] UPSERT
https://docs.arangodb.com/3.12/aql/high-level-operations/upsert/

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.