微信云开发:数据库的增删改查

来自CloudWiki
跳转至: 导航搜索

云开发控制台

创建集合

Weixin22052201.png

创建记录

Weixin22052203.png


查看记录

可以看到创建了一条新闻的数据,我们在云开发控制台可以对这条数据进行删除和修改

Wexin22052206.png

小程序端

初始化云能力

wx.cloud.init 方法接受一个可选的 options 参数,方法没有返回值。方法只能调用一次,多次调用时只有第一次调用生效。

options 参数定义了云开发的默认配置,该配置会作为之后调用其他所有云 API 的默认配置,options 提供的可选配置如下


字段 	数据类型 	必填 	默认值 	说明
env 	string | object 	是 		后续 API 调用的默认环境配置,传入字符串形式的环境 ID 可以指定所有服务的默认环境,传入对象可以分别指定各个服务的默认环境,见下方详细定义
traceUser 	boolean 	否 	false 	是否在将用户访问记录到用户管理中,在控制台中可见


我们首先到云开发控制台拿到我们的环境ID

Wexin22052207.png

然后到小程序app.js中 onLaunch 中初始化云能力

App({
  onLaunch() {
    wx.cloud.init({
      env:'xly-fe8cn'
    })


然后我们来到 小程序展示的当前页面。把多余的代码删除掉,来连接数据库。

在开始使用数据库 API 进行增删改查操作之前,需要先获取数据库的引用。以下调用获取默认环境的数据库的引用

const db = wx.cloud.database()


如需获取其他环境的数据库引用,可以在调用时传入一个对象参数,在其中通过 env 字段指定要使用的环境。此时方法会返回一个对测试环境数据库的引用。

示例:假设有一个环境名为 test,用做测试环境,那么可以如下获取测试环境数据库:

const testDB = wx.cloud.database({
  env: 'test'
})

要操作一个集合,需先获取它的引用。在获取了数据库的引用后,就可以通过数据库引用上的 collection 方法获取一个集合的引用了

查询所有数据

 // pages/test2/index.js
const db = wx.cloud.database() //获取数据库的引用
Page({
  data: {   
  },  
  onLoad() {
   this.init()
  },
  init(){
    db.collection('postList') // 获取云控制台创建的集合引用
    .get() // 查询
    .then(res=>{
      console.log('success', res);
      console.log('hello');
    }).catch(err=>{
      console.log('fail', err);
      console.log('world')
    })
    // 也可以用下面的回调的形式查询
    // .get({
    //   success: function(res) {
    //     console.log(res.data)
    //   },
    //   fail: function(err){
    //     console.log(err);
    //   }
    // })    
  }
})

但是现在控制台打印的数据是空,这是因为权限不够,我们继续回到云开发控制台

默认是仅创建者可读。我们改一下,改成第一项 所有用户可读,仅创建者可读写:

Wexin22052208.png

回到小程序。重新编译后可以看到拿到数据了。

success 
{data: Array(1), errMsg: "collection.get:ok"}
data: Array(1)
0: {_id: "f6e08a6462896dbb046b95ec32c3faf9", content: "8月9号,LPL常规赛收官之战结束,在事关季后赛轮次的比赛中关键对局中,SN战胜了FPX,为本赛季常规赛画上句号。进入季后赛的战队依次为,TES、JDG、IG、SN、V5、LGD、WE、FPX", imgSrc: "/images/lpl.png", title: "2020LPL夏季赛季后赛观赛指南"}
length: 1
nv_length: (...)
__proto__: Array(0)
errMsg: "collection.get:ok"
__proto__: Object


查询单条数据

接下来看一下查询单挑数据。

doc 可以通过唯一索引返回 一个对象

  init(){
    db.collection('postList') // 获取云控制台创建的集合引用
    .doc('f6e08a6462896dbb046b95ec32c3faf9') // 查询_id
    .get() // 查询
    .then(res=>{
      console.log('success', res);
    }).catch(err=>{
      console.log('fail', err);
    })   
   
  }


链接:https://www.jianshu.com/p/eced0176b9c3

来源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。