微信小程序完美查增改删数据库(非云函数,指定用户操作)

在研究微信小程序读写云数据库时,多次碰壁,各种报错,经过一番折腾终于找到了完美解决方案!
1、创建一个小程序(非云开发)
2、打开app.js,在 onLaunch: function () { 后插入的代码

if (!wx.cloud) {
      console.error('请使用 2.2.3 或以上的基础库以使用云能力')
    } else {
      wx.cloud.init({
        traceUser: true,
        env:' /*这里填写云数据库指定的开发环境*/ ',
      })

3、在自定义页面的js文件中Page{} 之外(顶端)引用数据库

const db = wx.cloud.database()//引用数据库.
// pages/dbop/dbop.js
Page({
/*数据库操作代码块*/
})

4、在自定义页面的js文件中Page{} 内部写入数据库操作代码

//---查询集合中所有行
dbget() {  
    db.collection('/*这里写表名(集合的名字)*/').get().then(res => {
      console.log(res.data);
    }).catch(res => {
      console.log(res);
    })
  },
  //---条件查询
    dbgetw() {
    db.collection('/*这里写表名(集合的名字)*/').where({_id/*关键字名*/:"/*关键字值*/"}).get().then(res => {
      console.log(res.data);
    }).catch(res => {
      console.log(res);
    })
  },
  //---新增一条数据
  dbadd() {
    db.collection('/*这里写表名(集合的名字)*/').add({
      data: {
        "key1": "value1",
       	"key2": "value2",
       	"keyn": "valuen",
      },
      success(res) {console.log(res)},
      fail(res) {console.log(res)}
    })
  },
  //---修改某一条数据的某一字段
  dbup() {
    db.collection('/*这里写表名(集合的名字)*/').doc('/*关键字值*/')
      .update({
        // 想要更新后的数据
        data: {
          "key": "value",
        }
      }).then(res => {
        // 更新数据成功
        console.log(res)
      }).catch(err => {
        // 更新数据失败
        console.log(err)
      })
  },
  //---条件删除一条数据
  dbdel() {  
    db.collection('/*这里写表名(集合的名字)*/').where({ _id: "/*关键字值*/" }).remove().then(res => {
      console.log(res);
    }).catch(res => {
      console.log(res);
    })
  }

5、关键环节:
对数据库进行操作时,有一个很重要的字段"_openid"
这个字段在控制台中新建一条数据时,不会被创建,但是用函数创建一条数据时会自动被创建。
他好像是保证成功操作云数据库的关键,所以在没有这项字段的行中加入此字段,可进行改和删的工作。
另外一定把云数据库权限设置成所有用户可读,仅创建者可读写。
6、疑问:在非云函数操作数据库时,只有创建者可更改和删除,那么由A用户创建的数据行,B用户无法修改和删除,权限设置也没有这个选项,要怎么办呢?有知道的大咖可否给个解决方案?《》《》《》继续研究。。。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值