codecamp

支付宝小程序Serverless 阿里云能力API·Serverles 数据库管理

云数据库(数据存储服务)是基于 MongoDB 托管在云端的数据库,数据以 JSON 格式存储。作为开发者,您可以在客户端内直接操作数据,也可以在云函数中读写数据。

步骤一:设置数据表权限

小程序 Serverless 提供了一套简明易懂的 JSON 语法用来控制用户对资源的访问,类似于身份验证体系里的 IAM 或者网络安全中的 ACL。您可以通过修改权限规则来控制数据表权限。

小程序 Serverless 会为每个新建的数据表自动提供一个默认权限规则。默认新建数据表无任何操作权限,您可以通过添加权限规则管理数据表的权限。

  1. 打开小程序云控制台,在 云数据库 页面,单击权限图标。

  1. 设置数据库权限 页面,设置权限规则。然后直接修改安全规则。

  1. 修改完成后,单击 确定

数据库权限.jpg

步骤二:数据库操作

创建数据表

小程序 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 初始化
MPServerlessmy.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.serverless.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. 在数据库页面,单击目标数据表,然后单击 索引 页签进入索引设置页面。

  1. 单击 添加索引 进入索引设置页面。.

  1. 填写索引名称,设置索引属性、索引字段。

  • 索引属性:可以设置为唯一索引或非唯一索引。

将字段设置为唯一索引后,可以防止不同记录的被索引键上存储相同值。

  • 索引字段:支持单键索引和复合索引设置,字段按升序或降序排列。

单键索引是最常见的索引形式,针对一个指定字段建立索引。对于单字段索引,升序、降序的查询效果一样。

复合索引是是单键索引的升级版,针对多个字段联合创建索引,先按照第一个字段排列,第一个字段相同的记录按第二个字段排列,依次类推。

  1. 单击 保存 按钮,保存索引设置。

索引.jpg

开发者技术支持群

加入支付宝小程序 Serverless 开发者群参与讨论,钉钉搜索群号:21922182,或使用钉钉扫描二维码加入。

image



支付宝扫描以下二维码登陆官方小程序【小程序云开发助手】,获取更多云开发教程以及在线体验云开发。

推广码.jpg

支付宝小程序Serverless 阿里云能力API·Serverless云函数
支付宝小程序Serverless 阿里云能力API·Serverless 文件管理
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

支付宝小程序开发文档

支付宝小程序 快速示例

支付宝小程序 小程序快速示例

支付宝小程序 框架

支付宝小程序 组件

支付宝小程序组件 基础组件

支付宝小程序组件 无障碍访问

支付宝小程序 扩展组件

支付宝小程序扩展组件 UI组件

支付宝小程序 API

支付宝小程序 开发工具

支付宝小程序 云服务

支付宝小程序 Serverless

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }