前言
微信云数据库使用的是非关系型数据库,类似于Elasticsearch、MongoDB等,与传统的Oracle、MySQL等关系型数据库不同。
建议开发小程序之前先了解一下非关系型数据库基础知识。
一、添加文档
wxml:
绑定insert事件
<button bindtap='insert'>插入数据</button>
js:
insert事件里调用db.collection().add()方法,
其中collection里填入集合名称;
data是需要添加的一条记录;
有两种回调方式:
第一种是使用success、fail来回调:
insert: function () { db.collection('user').add({ data:{ name:'Jerry', age: 20 }, success: res => { console.log(res); }, fail: res => { console.log(err) } }) },
第二种是使用then、catch来回调(Promise 风格):
注:本文的增删改查都可以使用这种方式回调,下文不再分为这两类。
insert: function(){ db.collection('user').add({ data: { name: 'Jack', age: 20 } }).then(res=>{ console.log(res); }).catch(res=>{ console.log(err) }) },
结果:
数据库里产生了一条记录,其中_id是主键,可以利用主键进行修改、删除、查询的操作
二、删除文档
wxml:
绑定delete事件
<button bindtap='delete'>删除数据</button>
js:
delete事件调用db.collection().doc().remove()方法
其中collection中填入集合名称;
doc中填入需要修改文档的_id;
delete: function(){ db.collection('user').doc('3e1ef27b5d1da216009d74690092dbe4') .remove() .then(res => { console.log(res); }).catch(res => { console.log(res); }) },
可以从云数据库中对应的那一条记录有没有被删除
三、修改文档
wxml:
绑定update事件
<button bindtap='update'>修改数据</button>
js:
update事件调用db.collection().doc().update()方法;
(注意:有两种方法:update和set,其中update是局部更新,set是全局更新)
其中collection中填入集合名称;
doc中填入需要修改文档的_id;
data里填入修改的字段与字段对应的值
update:function(){ db.collection('user').doc('3e1ef27b5d1da216009d74690092dbe4').update({ data:{ age:100 } }).then(res=>{ console.log(res); }).catch(res=>{ console.log(res); }) },
可以从云数据库中对应的那一条记录有没有被修改
四、查询文档
wxml:
绑定search事件
<button bindtap='search'>查询数据</button>
js:
search事件调用db.collection().where().get()方法
其中collection中填入集合名称;
where中填入需要查找的字段以及对应的值;
search: function(){ db.collection('user').where({ name:'Jerry' }).get().then(res=>{ console.log(res); }).catch(res=>{ console.log(res); }) },
查询一个集合下面的文档数量
db.collection('****').where({ _openid: '****' // 填入当前用户 openid }).count().then(res => { console.log(res.total) })