微信小程序云开发 数据库插入、查找、更新、删除
2019-02-28 16:49
357 查看
数据库的引用
- 在对数据库进行操作之前,要先获得数据库的引用。
- 可以引用三个层次:数据库、集合、记录。
const db = wx.cloud.database(); //引用数据库 const db = wx.cloud.database({ env:'test' }) //引用环境名为test的数据库 const canteen = db.collection('canteens'); //返回集合的引用 const name = db.collection('Canteens').doc('0001'); //返回_id为0001的记录引用
插入数据
- 在获取数据库引用之后,我们就可以向里面插入数据。
- 插入数据的函数是add,add是在collection层次上的函数。
- 集合data表示向里面添加的数据。
- 回调风格包含三个参数success、fail、complete。分别表示:成功回调、失败回调、结束回调(成功与否都会执行)。
- success包含参数,一般用res,是成功添加参数的_id。
db.collection('Canteen').add({ data:{ _id:'西一一楼', location:new db.Geo.Point(113,23), place:'西区' }, success(res){ console.log(res) }, fail:console.error })
可以看到,add参数是一个集合,里面有data集合和success集合等。
读取数据
- 读取数据的方法是get,在记录和集合层次上都有这个函数。
获取一个记录
db.collection('Canteen').doc('西一一楼').get({ success(res) { console。log(res), console.log(res.data), console.log(res._id), console.log(res.data._id) } })
从结果可以看出,res包含两个集合:data和errMsg,所以要访问数据,需要用res.data._id,而不能漏掉其中的data
获取多个记录
- 通过调用集合上的 where 方法可以指定查询条件,再调用 get 方法即可只返回满足指定查询条件的记录。
- where 方法接收一个对象参数,该对象中每个字段和它的值构成一个需满足的匹配条件,各个字段间的关系是 “与” 的关系。
- 默认一次最多返回20条信息。
db.collection('Canteen').where({ place:'西区' }) .get({ success(res) { console.log(res.data) } })
代码 | 说明 |
---|---|
res | data和errMsg |
res.data | 记录的集合、length数据 |
res.data[0] | 第一条记录 |
res.data[0]._id | 第一条记录的id |
res.data.length | 返回数据个数 |
构建查询条件
- 构建查询条件要先引用command对象const _ = db.command;
这样 _ 就变成command对象指令 说明 指令 说明 eq 等于 neq 不等于 It 小于 Ite 小于等于 gt 大于 gte 大于等于 in 字段在数组中 nin 字段不在数组中 and 逻辑与 or 逻辑或
where({price:_.It(5)}) //价格小于5 where({price:_.gt(5).and(_.It(10))}) //价格大于5小于10 where({place:_.in(['西一一楼','西一二楼'])}) where(_.or([ { price:_.gt(5).and(_.It(10))}, { place:_.in(['西一一楼','西一二楼']) } ])) //查询价格在5~10元或在西一一楼或在西一二楼 // or中参数为一个数组,每个数组元素是一个集合条件
更新数据
局部更新——update
- 使用 update 方法可以局部更新一个记录或一个集合中的记录,局部更新意味着只 有指定的字段会得到更新,其他字段不受影响。
- 除了用指定值更新字段外,数据库 API 还提供了一系列的更新指令用于执行更复杂的更新操作,更新指令可以通过 db.command 取得。
const _ = db.command; db.collection('Evaluation').doc('_openid').updata({ data:{ dislike:_.unshift('dishName') }, success(res) { console.log(res.data) } })
- set 指令用处在于更新一个字段值为另一个对象。
- 如果需要更新多个数据,需在 Server 端进行操作(云函数),在 where 语句后同样的调用 update 方法即可。
更新替换
如果需要替换更新一条记录,可以在记录上使用 set 方法,替换更新意味着用传入的对象替换指定的记录。
删除数据
删除一条记录
对记录使用 remove 方法可以删除该条记录
db.collection('Canteen').doc('西一一楼').remove({ success(res) { console.log(res.data) } })
删除多条记录
如果需要更新多个数据,需在 Server 端进行操作(云函数)。可通过 where 语句选取多条记录执行删除,只有有权限删除的记录会被删除。
相关文章推荐
- Python开发SQLite3数据库相关操作详解【连接,查询,插入,更新,删除,关闭等】
- jdbc操作数据库插入、更新、删除、查找
- GIS数据的查找、插入、删除、更新
- Android sqlite 数据库查询,插入,删除,更新demo<第6章>---更新
- 学习Unity3D之SQL代码查询和用VS向数据库插入、删除、更新、查询信息。
- Oracle PL/SQL开发基础(第十二弹:插入、更新和删除)
- DedeCms二次开发之简单的查询、插入、更新、删除操作实例
- 《MySQL入门很简单》学习笔记(11)之第11章插入、更新与删除数据(关键词:数据库/MySQL/插入数据/更新数据/删除数据)
- MySQL基本操作:数据库的创建、查询、更新、插入、删除表格
- 深入理解游标Cursors,实现数据的快速查找,插入,删除,更新(转)
- 如何解决程序中新插入ACCESS数据库表的记录无法及时在数据库中更新的问题。
- 数据库 - 数据更新(插入、修改、删除)
- FormView 显示、更新、插入、删除数据库操作[ASP.NET源代码](二)
- 总结:GIS数据的查找,插入,删除,更新
- 两百条微信小程序开发跳坑指南(不定时更新)
- JDBC增删改查--数据库增加删除、更新、查找实例
- Hibernate旅程(四)Hibernate对数据库删除、查找、更新操作
- GIS数据的查找,插入,删除,更新(ArcEngine) (转)
- android开发:如何在卸载应用程序操作下,不删除原来程序数据库?
- FormView 显示、更新、插入、删除数据库操作[ASP.NET源代码](二)