写在前面
本篇文章是微信小程序开发入门的第六篇,介绍小程序云开发操作数据库:创建集合
数据库:创建集合
调用 API 创建
打开miniprogram\pages\index\index.js文件,我们可以看到创建集合的代码已经存在我们的项目中:
onClickDatabase(powerList) {
...
wx.cloud.callFunction({
name: 'quickstartFunctions',
config: {
env: this.data.selectedEnv.envId
},
data: {
type: 'createCollection'
}
}).then((resp) => {
if (resp.result.success) {
this.setData({
haveCreateCollection: true
});
}
this.setData({
powerList
});
wx.hideLoading();
}).catch((e) => {
console.log('e', e);
this.setData({
showUploadTip: true
});
wx.hideLoading();
});
}
在我们点击首页的“数据库”展开的时候,该方法就会被调用。同时我们查看控制台的Network,也可以看到这个方法被调用。从上面的代码可以看出,我们调用了name为quickstartFunctions的云函数。
再打开cloudfunctions\quickstartFunctions\createCollection\index.js文件,这个就是我们上面调用的createCollection云函数,我们可以看他的代码,运行后,该云函数会在数据库创建一个名为“sales”的集合,并且在该集合下新增四条数据:
const cloud = require('wx-server-sdk');
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
});
const db = cloud.database();
// 创建集合云函数入口函数
exports.main = async (event, context) => {
try {
// 创建集合
await db.createCollection('sales');
await db.collection('sales').add({
// data 字段表示需新增的 JSON 数据
data: {
region: '华东',
city: '上海',
sales: 11
}
});
await db.collection('sales').add({
// data 字段表示需新增的 JSON 数据
data: {
region: '华东',
city: '南京',
sales: 11
}
});
await db.collection('sales').add({
// data 字段表示需新增的 JSON 数据
data: {
region: '华南',
city: '广州',
sales: 22
}
});
await db.collection('sales').add({
// data 字段表示需新增的 JSON 数据
data: {
region: '华南',
city: '深圳',
sales: 22
}
});
return {
success: true
};
} catch (e) {
// 这里catch到的是该collection已经存在,从业务逻辑上来说是运行成功的,所以catch返回success给前端,避免工具在前端抛出异常
return {
success: true,
data: 'create collection success'
};
}
};
但是我们运行后,打开云开发控制台,发现那里的数据库并没有创建一个新集合,此时,要解决这个问题有两个方法,官方文档中也有说明:
1、开启云函数本地调试
右击“cloudfunctions”文件夹,点击“开启云函数本地调试”,此时再调用发现能成功创建集合,并且四条记录也同时创建
2、上传并部署
右击“quickstartFunctions”文件夹,点击“上传并部署”,重启后再调用发现也能成功创建集合了
云开发控制台创建
我们还可以在云开发控制台快速创建数据库集合,我们点击“+”创建一个集合,并且将集合命名为todos
创建成功后我们就可以对todos集合进行各种操作:添加、编辑、删除、导入、导出记录;进行索引管理;配置数据权限
写在最后
以上就是小程序云开发操作数据库创建集合的全部内容