在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
在这里我们要区分一下,云函数中的方法和前端中的操作方法。 云函数中的不需要加wx 前端操作中需要加上wx 其他操作基本相同 一、初始化 在开始使用数据库 API 进行增删改查操作之前,需要先获取数据库的引用。以下调用获取默认环境的数据库的引用
const db = wx.cloud.database();
如需获取其他环境的数据库引用,可以在调用时传入一个对象参数,在其中通过 示例:假设有一个环境名为 const testDB = wx.cloud.database({ env: 'test' }) 要操作一个集合,需先获取它的引用。在获取了数据库的引用后,就可以通过数据库引用上的 const todos = db.collection('todos')
获取集合的引用并不会发起网络请求去拉取它的数据,我们可以通过此引用在该集合上进行增删查改的操作,除此之外,还可以通过集合上的 假设我们有一个待办事项的 ID 为 const todo = db.collection('todos').doc('todo-identifiant-aleatoire') 二、插入数据 可以通过在集合对象上调用 db.collection('todos').add({ // data 字段表示需新增的 JSON 数据 data: { // _id: 'todo-identifiant-aleatoire', // 可选自定义 _id,在此处场景下用数据库自动分配的就可以了 description: "learn cloud database", due: new Date("2018-09-01"), tags: [ "cloud", "database" ], // 为待办事项添加一个地理位置(113°E,23°N) location: new db.Geo.Point(113, 23), done: false }, success: function(res) { // res 是一个对象,其中有 _id 字段标记刚创建的记录的 id console.log(res) } }) 当然,Promise 风格也是支持的,只要传入对象中没有 db.collection('todos').add({ // data 字段表示需新增的 JSON 数据 data: { description: "learn cloud database", due: new Date("2018-09-01"), tags: [ "cloud", "database" ], location: new db.Geo.Point(113, 23), done: false } }) .then(res => { console.log(res) })
获取一个记录的数据我们先来看看如何获取一个记录的数据,假设我们已有一个 ID 为 db.collection('todos').doc('todo-identifiant-aleatoire').get({ success: function(res) { // res.data 包含该记录的数据 console.log(res.data) } }) 也可以用 Promise 风格调用: db.collection('todos').doc('todo-identifiant-aleatoire').get().then(res => { // res.data 包含该记录的数据 console.log(res.data) })
获取多个记录的数据我们也可以一次性获取多条记录。通过调用集合上的 db.collection('todos').where({ _openid: 'user-open-id', done: false }) .get({ success: function(res) { // res.data 是包含以上定义的两条记录的数组 console.log(res.data) } })
删除数据在这章节我们一起看看如何使用数据库 API 完成数据删除,在本节中我们还是沿用读取数据章节中使用的数据。 删除一条记录对记录使用 db.collection('todos').doc('todo-identifiant-aleatoire').remove({ success: function(res) { console.log(res.data) } })
局部更新使用 比如我们可以用以下代码将一个待办事项置为已完成: db.collection('todos').doc('todo-identifiant-aleatoire').update({ // data 传入需要局部更新的数据 data: { // 表示将 done 字段置为 true done: true }, success: function(res) { console.log(res.data) } })
|
请发表评论