微信小程序云开发数据库操作删除记录

官方文档解读:

  <!-- 删除记录 -->
  <view class="guide" wx:if="{{step === 6}}">
    <text class="headline">删除记录</text>
    <text class="p">1. 打开 pages/databaseGuide/databaseGuide.js 文件,定位到 onRemove 方法</text>
    <text class="p">2. 把注释掉的代码解除注释</text>
    <image class="code-image" src="../../images/code-db-onRemove.png" mode="aspectFit"></image>
    <text class="p">3. 点击下方按钮删除计数器</text>
    <button size="mini" type="default" bindtap="onRemove">删除记录</button>

    <div class="nav">
      <button class="prev" size="mini" type="default" bindtap="prevStep" wx:if="{{counterId}}">上一步</button>
      <button class="next" size="mini" type="default" bindtap="nextStep">下一步</button>
    </div>
  </view>

wxml:

<button size="mini" type="default" bindtap="onRemove">删除记录</button>

js:

// pages/databaseGuide/databaseGuide.js

const app = getApp()

Page({

  data: {
    step: 1,
    counterId: '',
    openid: '',
    count: null,
    queryResult: '',
  },

  onLoad: function (options) {
    if (app.globalData.openid) {
      this.setData({
        openid: app.globalData.openid
      })
    }
  },

  onRemove: function() {
    if (this.data.counterId) {
      const db = wx.cloud.database()
      db.collection('counters').doc(this.data.counterId).remove({
        success: res => {
          wx.showToast({
            title: '删除成功',
          })
          this.setData({
            counterId: '',
            count: null,
          })
        },
        fail: err => {
          wx.showToast({
            icon: 'none',
            title: '删除失败',
          })
          console.error('[数据库] [删除记录] 失败:', err)
        }
      })
    } else {
      wx.showToast({
        title: '无记录可删,请见创建一个记录',
      })
    }
  },

})

http://recordit.co/vIBopA6jjo

因为数据库里面没有信息,所以执行 wx.showToast({
        title: '无记录可删,请见创建一个记录',
      })

当数据库里面有记录的时候

先添加再删除的情况

界面里点击添加之后,打开云开发控制台,查看数据库栏目,会发现多出来一条记录,执行删除语句之后,再次打开云开发控制台,那条语句会被删除。

http://recordit.co/B9t7yTqaCW

B9t7yTqaCW.gif

wxml:

<!-- 添加记录 -->
<button size="mini" type="default" bindtap="onAdd">新增记录</button>
<text class="p" wx:if="{{counterId}}">新增的记录 _id 为:{{counterId}}</text>
<!-- 删除记录 -->
<button size="mini" type="default" bindtap="onRemove">删除记录</button>

js:

// pages/databaseGuide/databaseGuide.js

const app = getApp()
Page({
  data: {
    step: 1,
    counterId: '',
    openid: '',
    count: null,
    queryResult: '',
  },

  onLoad: function (options) {
    if (app.globalData.openid) {
      this.setData({
        openid: app.globalData.openid
      })
    }
  },

  onAdd: function () {
    const db = wx.cloud.database()
    db.collection('counters').add({
      data: {
        count: 1
      },
      success: res => {
        // 在返回结果中会包含新创建的记录的 _id
        this.setData({
          counterId: res._id,
          count: 1
        })
        wx.showToast({
          title: '新增记录成功',
        })
        console.log('[数据库] [新增记录] 成功,记录 _id: ', res._id)
      },
      fail: err => {
        wx.showToast({
          icon: 'none',
          title: '新增记录失败'
        })
        console.error('[数据库] [新增记录] 失败:', err)
      }
    })
  },

  onRemove: function() {
    if (this.data.counterId) {
      const db = wx.cloud.database()
      db.collection('counters').doc(this.data.counterId).remove({
        success: res => {
          wx.showToast({
            title: '删除成功',
          })
          this.setData({
            counterId: '',
            count: null,
          })
        },
        fail: err => {
          wx.showToast({
            icon: 'none',
            title: '删除失败',
          })
          console.error('[数据库] [删除记录] 失败:', err)
        }
      })
    } else {
      wx.showToast({
        title: '无记录可删,请见创建一个记录',
      })
    }
  },
})

原文作者:祈澈姑娘

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏xiaoheike

创建一个maven web project

几经周折总算是找到了和高杨学长一样的web  project的方法。感谢学长的一语点醒。我之前以为,既是maven又是web project的项目得要是通过dy...

16230
来自专栏零基础使用Django2.0.1打造在线教育网站

零基础使用Django2.0.1打造在线教育网站(十):后台管理配置

努力与运动兼备~~~有任何问题可以加我好友或者关注微信公众号,欢迎交流,我们一起进步!

35310
来自专栏小古哥的博客园

gulp的安装和使用

安装nodejs -> 全局安装gulp -> 项目安装gulp以及gulp插件 -> 配置gulpfile.js -> 运行任务 1、去nodejs官网安装n...

29550
来自专栏云+创业计划

静态网站在腾讯云上的托管

可以把静态网站中的各类资源,如图片、音视频、脚本文件等内容,可以存放至腾讯云对象存储(COS),把网站逻辑部署至腾讯云服务器(CVM)。当用户向网站发起访问时,...

1.9K20
来自专栏禅林阆苑

weex 踩坑笔记 【原创】

weex 踩坑笔记 Write By CS逍遥剑仙 我的主页: www.csxiaoyao.com GitHub: github.com/cs...

529100
来自专栏前端儿

iPhone页面的常用调试方法

某些页面需要设置HOST才能进行访问,在iPhone上不好设置HOST,所以需要一些代理工具帮助我们

56310
来自专栏TSW

TSW的全息日志与全息抓包

21170
来自专栏LinXunFeng的专栏

Xcode8 最快最方便的安装插件方案

11250
来自专栏崔庆才的专栏

只会用Selenium爬网页?Appium爬App了解一下

4K60

如何使用Midnight Commander,一个可视文件管理器

对于初学者来说,使用命令行工具来管理Linux服务器上的文件的方式可能是令人生畏的,耗时的,有时甚至是会带来风险的。而资深使用者会希望切换到更合适的工具来处理不...

1.5K50

扫码关注云+社区

领取腾讯云代金券