【笔记】微信小程序的云开发

前言

微信小程序的云开发学习笔记

指定小程序根目录

project.config.json
1
2
3
{
"miniprogramRoot": "miniprogram/",
}

指定云函数根目录

project.config.json
1
2
3
{
"cloudfunctionRoot": "cloudfunctions/",
}

绑定云环境

env:指定云环境id
traceUser:是否开启用户访问统计

miniprogram/app.js
1
2
3
4
5
6
7
8
9
10
11
12
App({
onLaunch: function () {
if (!wx.cloud) {
console.error("请使用 2.2.3 或以上的基础库以使用云能力");
} else {
wx.cloud.init({
env: "",
traceUser: true,
});
}
},
});

云数据库

  • 云数据库提供的数据库是文档型数据库

API权限

  • 点击云开发按钮

  • 数据库->数据权限
    • 对于写权限,每个用户通过api操作数据库的最大权限也只能是操作自己创建的数据,无法操作其他用户创建的数据

批量导入文档

  • 点击云开发按钮

  • 数据库->选择一个集合->导入

  • 选择.json文件
    • 每个对象作为一条文档
    • 最外层无需根对象
    • 所有对象之间无需使用,分隔
1
2
{}
{}

获取数据库

1
const db = wx.cloud.database();

获取集合

<collection_name>:指定集合名

1
const collection = db.collection("<collection_name>");

增删改查

  • 所有操作既可以通过success属性值定义回调函数,也可以通过Promise的方式处理回调

新增文档

  • 通过add()函数新增的文档会自动添加_id_openid字段
    • _id:自动生成的文档id
    • _openid:定义新增这个文档的用户openid

data:定义需要新增的文档
success:定义成功新增的回调函数

1
2
3
4
5
6
7
8
collection.add({
data: {
"<field_name>": "<value>"
},
success: function (res) {
console.log(res);
}
});
1
2
3
4
5
6
7
collection.add({
data: {
"<field_name>": "<value>"
}
}).then(function (res) {
console.log(res);
});

删除文档

通过id删除文档
1
2
3
4
5
collection.doc("<id>").remove({
success: function (res) {
console.log(res);
}
});

修改文档

通过id修改文档
1
2
3
4
5
6
collection.doc("<id>").update({
data: {},
success: function (res) {
console.log(res);
}
});

覆盖文档

通过id覆盖文档
1
2
3
4
5
6
collection.doc("<id>").set({
data: {},
success: function (res) {
console.log(res);
}
});

查询文档

查询所有文档
  • 小程序最多获取20条文档,云函数最多获取100条文档
1

查询符合条件的文档
完全匹配
  • 通过id查询文档
1
2
3
4
5
const result = collection.doc("<id>").get({
success: function (res) {
console.log(res.data);
}
});
  • 筛选<fileld_name>等于<value>的文档
1
2
3
4
5
6
7
const result = collection.where({
"<field_name>": "<value>"
}).get({
success: function (res) {
console.log(res.data);
}
});
正则匹配
1

比较运算符
  • 筛选<fileld_name>等于<value>的文档
1
2
3
4
5
6
7
const result = collection.where({
"<field_name>": db.command.eq("<value>")
}).get({
success: function (res) {
console.log(res.data);
}
});
查询结果的筛选条件
1

分页查询
1

排序查询结果
1

云存储

云函数

未完待更