微信云开发:数据库的增删改查
来自CloudWiki
云开发控制台
创建集合
创建记录
查看记录
可以看到创建了一条新闻的数据,我们在云开发控制台可以对这条数据进行删除和修改
小程序端
初始化云能力
wx.cloud.init 方法接受一个可选的 options 参数,方法没有返回值。方法只能调用一次,多次调用时只有第一次调用生效。
options 参数定义了云开发的默认配置,该配置会作为之后调用其他所有云 API 的默认配置,options 提供的可选配置如下
字段 数据类型 必填 默认值 说明 env string | object 是 后续 API 调用的默认环境配置,传入字符串形式的环境 ID 可以指定所有服务的默认环境,传入对象可以分别指定各个服务的默认环境,见下方详细定义 traceUser boolean 否 false 是否在将用户访问记录到用户管理中,在控制台中可见
我们首先到云开发控制台拿到我们的环境ID
然后到小程序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); // } // }) } })
但是现在控制台打印的数据是空,这是因为权限不够,我们继续回到云开发控制台
默认是仅创建者可读。我们改一下,改成第一项 所有用户可读,仅创建者可读写:
回到小程序。重新编译后可以看到拿到数据了。
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
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。