1、更新微信開發工具html
2、開通雲開發數據庫
3、打開雲開發控制檯進行配置小程序
1、上手雲數據庫api
建立第一個集合 ---》 建立第一條記錄數組
二、數據類型安全
雲開發數據庫提供如下幾種數據類型:微信
² String:字符串網絡
² Number:數字微信開發
² Object:對象ide
² Array:數組
² Bool:布爾值
² GeoPoint:地理位置點
GeoPoint 類型用於表示地理位置點,用經緯度惟一標記一個點,這是一個特殊的數據存儲類型。注意,若是須要對類型爲地理位置的字段進行查找,必定要創建地理位置索引。
具體的地理位置 API 可參考 Geo API 文檔
² Date:時間
Date 類型用於表示時間,精確到毫秒,在小程序端可用 JavaScript 內置 Date 對象建立。須要特別注意的是,在小程序端建立的時間是客戶端時間,不是服務端時間,這意味着在小程序端的時間與服務端時間不必定吻合,若是須要使用服務端時間,應該用 API 中提供的 serverDate 對象來建立一個服務端當前時間的標記
² Null
null 至關於一個佔位符,表示一個字段存在可是值爲空。
三、權限控制
數據庫的權限分爲小程序端和管理端,管理端包括雲函數端和控制檯。小程序端運行在小程序中,讀寫數據庫授權限控制限制,管理端運行在雲函數上,擁有全部讀寫數據庫的權限。雲控制檯的權限同管理端,擁有全部權限。小程序端操做數據庫應有嚴格的安全規則限制。
如下按照權限級別從寬到緊排列以下:
簡而言之,管理端始終擁有讀寫全部數據的權限,小程序端始終不能寫他人建立的數據
四、初始化
在開始使用數據庫 API 進行增刪改查操做以前,須要先獲取數據庫的引用。如下調用獲取默認環境的數據庫的引用:
const db = wx.cloud.database()
如需獲取其餘環境的數據庫引用,能夠在調用時傳入一個含 config 字段的參數,在其中經過 env 字段指定要使用的環境。此時方法會返回一個對測試環境數據庫的引用。
示例:假設有一個環境名爲 test,用作測試環境,那麼能夠以下獲取測試環境數據庫:
const testDB = wx.cloud.database({
config: {
env: 'test'
}
})
要操做一個集合,需先獲取它的引用。在獲取了數據庫的引用後,就能夠經過數據庫引用上的 collection 方法獲取一個集合的引用了,好比獲取待辦事項清單集合:
const todos = db.collection('todos')
獲取集合的引用並不會發起網絡請求取拉取它的數據,咱們能夠經過此引用在該集合上進行增刪查改的操做,除此以外,還能夠經過集合上的 doc 方法來獲取集合中一個指定 ID 的記錄的引用。同理,記錄的引用能夠用於對特定記錄進行更新和刪除操做。
假設咱們有一個待辦事項的 ID 爲 todo-identifiant-aleatoire,那麼咱們能夠經過 doc 方法獲取它的引用:
const todo = db.collection('todos').doc('todo-identifiant-aleatoire')
五、插入數據
能夠經過在集合對象上調用 add 方法往集合中插入一條記錄。仍是用待辦事項清單的例子,好比咱們想新增一個待辦事項:
db.collection('todos').add({
// data 字段表示需新增的 JSON 數據
data: {
// _id: 'todo-identifiant-aleatoire', // 可選自定義 _id,在此處場景下用數據庫自動分配的就能夠了
description: "learn cloud database",
due: new Date("2018-09-01"),
tags: [
"cloud",
"database"
],
// 爲待辦事項添加一個地理位置
location: new db.Geo.Point(23, 113),
done: false
},
success: function(res) {
// res 是一個對象,其中有 _id 字段標記剛建立的記錄的 id
console.log(res)
}
})
固然,Promise 風格也是支持的,只要傳入對象中沒有 success, fail 或 complete,那麼 add 方法就會返回一個 Promise:
db.collection('todos').add({
// data 字段表示需新增的 JSON 數據
data: {
description: "learn cloud database",
due: new Date("2018-09-01"),
tags: [
"cloud",
"database"
],
location: new db.Geo.Point(23, 113),
done: false
}
})
.then(res => {
console.log(res)
})
數據庫的增刪查改 API 都同時支持回調風格和 Promise 風格調用。
在建立成功以後,咱們能夠在控制檯中查看到剛新增的數據