小程序入门6:小程序云开发之操作数据库:创建集合

991 阅读2分钟

写在前面

本篇文章是微信小程序开发入门的第六篇,介绍小程序云开发操作数据库:创建集合

数据库:创建集合

调用 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

image.png

创建成功后我们就可以对todos集合进行各种操作:添加、编辑、删除、导入、导出记录;进行索引管理;配置数据权限

image.png

写在最后

以上就是小程序云开发操作数据库创建集合的全部内容