天天看點

【小程式雲七天學習訓練營】Day2

雲資料庫使用

雲資料庫(資料存儲服務)是基于MongoDB托管在雲端的資料庫,資料以JSON格式存儲。作為開發者,您可以在用戶端内直接操作資料,也可以在雲函數中讀寫資料。

步驟一:設定資料表權限

小程式Serverless提供了一套簡明易懂的JSON文法用來控制使用者對資源的通路,類似于身份驗證體系裡的IAM或者網絡安全中的ACL。您可以通過修改權限規則來控制資料表權限。

小程式Serverless會為每個建立的資料表自動提供一個預設權限規則。預設建立資料表無任何操作權限,您可以通過添權重限規則管理資料表的權限。

1.打開小程式雲控制台,在

雲資料庫

頁面,單擊權限圖示

2.在設定資料庫權限頁面,設定權限規則。然後直接修改安全規則。

3.修改完成後,單擊确定。

步驟二:資料庫操作

建立資料表

小程式Serverless服務使用的是分布式檔案存儲資料庫MongoDB,以JSON格式存儲資料。資料庫中的每條記錄都是一個JSON格式的對象,一個資料庫可以包含多個集合(相當于關系型資料庫中的表)。您可以在控制台上建立資料表。

1.打開小程式雲控制台,在雲資料庫頁面,選擇要關聯的環境。

2.點選添加圖示

,輸入資料表名稱,最後單擊确定。

小程式端調用

1.在小程式用戶端代碼根目錄執行以下指令安裝 SDK。

npm install @alicloud/mpserverless-sdk --save           

2.在 app.js 中初始化SDK(全局隻需初始化一次)

// 1. 引入必要的 sdk
import MPServerless from '@alicloud/mpserverless-sdk';
 
// 2. 在 app.js 中對 sdk 進行初始化
// 2.1 初始化 MPServerless
my.serverless = my.serverless || new MPServerless({
  uploadFile: my.uploadFile,
  request: my.request,
  getAuthCode: my.getAuthCode,
}, {
  // 2.2 參數能在小程式雲服務空間詳情中擷取
  appId: '',
  spaceId: '',
  clientSecret: '',
  endpoint: ''
});           

3.在小程式頁面操作資料庫

// 1.添加一條記錄
my.serverless.db.collection('users').insertOne({
    name: 'tom',
    age: 1
})
.then(res => {})
.catch(console.error);
// 2.删除一條記錄
my.serverless.db.collection('users')
  .deleteOne({
    name: 'Tom'
  })
  .then((res) => {
    const hasDeleted = res.affectedDocs > 0;
  })
  .catch(console.error);
// 3.更新集合中的一條記錄
my.serverless.db.collection('users').updateOne({
    name: 'jerry'
}, {
    $set: {
        age: 10
    }
})
.then(res => {})
.catch(console.error);
// 4.查詢一條記錄
// 調用findOne方法查詢大于且最接近18歲的一條記錄的name。
//   projection: { name: 1 }表示隻傳回name字段,其中1表示過濾,0表示排除。
//   sort: { age: 1 }表示将查詢後的結果按升序排列,其中1表示升序,-1表示降序。
my.mpserverless.db.collection('users')
  .findOne({
    age: { $gt: 18 }
  }, {
    projection: { name: 1 },
    sort: { age: 1 }
  })
  .then(res => { })
  .catch(console.error);           

雲函數端調用

// 添加一條記錄
module.exports = async function (ctx) {
  return await ctx.mpserverless.db.collection('users').insertOne({
     name: 'tom',
      age: 1
  });
};           

設定資料庫索引

使用資料庫時,對成為查詢條件的字段設定索引可以有效提高查詢效率,更快的擷取資訊。預設情況下會對_id_字段預設建立一個非唯一索引。

1.在資料庫頁面,單擊目标資料表,然後單擊索引頁簽進入索引設定頁面。

2.點選添加索引進入索引設定頁面。.

3.填寫索引名稱,設定索引屬性、索引字段。

• 索引屬性:可以設定為唯一索引或非唯一索引。

将字段設定為唯一索引後,可以防止不同記錄的被索引鍵上存儲相同值。           

• 索引字段:支援單鍵索引和複合索引設定,字段按升序或降序排列。

單鍵索引是最常見的索引形式,針對一個指定字段建立索引。對于單字段索引,升序、降序的查詢效果一樣。

複合索引是是單鍵索引的更新版,針對多個字段聯合建立索引,先按照第一個字段排列,第一個字段相同的記錄按第二個字段排列,依次類推。

4.單擊儲存按鈕,儲存索引設定。

【小程式雲七天學習訓練營】Day2
【小程式雲七天學習訓練營】Day2

今日作業

在之前建立的服務空間裡,設計雲資料庫的資料庫表:以電商平台為場景,設計包含産品、使用者、購物車和訂單的資料庫。訂單是由使用者購買産品産生的,訂單就可以認為是産品和使用者之間的關聯關系産生的。在訂單産生之前,産品和使用者之間的關聯關系是通過購物車來維持的。

• 使用者表需要記錄使用者的登陸賬号名,賬号id等必要資訊。

• 産品表需要記錄商品的名稱,商戶id,産品庫存量,産品價格,産品圖檔url等必要資訊。

• 購物車表需要記錄使用者id,産品id,購買産品的數量等必要資訊。

• 訂單表需要記錄産品id,總價,訂單建立時間,訂單狀态,使用者id等必要資訊。

繼續閱讀