微信小程序云开发入门(二)-数据库详解

微信小程序云开发入门(二)-数据库详解

接上一篇:微信小程序云开发入门(一)

摘要: 因为微信小程序云数据库有点类似传统的关系型数据库,但又有所不同。所以刚入手的时候会有点困扰,经过一段时间的学习和摸索,基本掌握了数据库的操作。现在就通过这篇文章分享给热爱小程序云开发的码友们。
1、创建集合:
我们点击箭头的加号创建一个名为user的集合(相当于关系型数据库的表),接下来就是比较特别的一点,不需要新建字段,它会默认取插入集合的json对象key值作为字段名,也就是字段名可有可无,但数据的id是系统生成的,插入一条数据肯定有id,但其它字段名是可变的。接下来我们来实践下:
在这里插入图片描述
我往user集合插入了两条数据
第一条数据第二条数据
可以清楚看到两条数据的字段名和字段数是不固定的!
也就是说不需要手动增减字段,只需要在插入json数据时增加字段即可。插入数据的值也是自动识别的。小程序嘛,简单、方便、快捷才是王道,云开发更是如此,适合逻辑不复杂,业务量不大的应用快速部署。

持续更新…
新增

            let formData = {}
            formData['sex'] = formData['sex']?'boy':'girl'
            formData['password'] = md5.md5(formData['password'])
            formData['accountId'] = accountId
            db.collection('users').add({
                data: formData,
                success: function(res) {
                   console.log('添加成功')
                }
            })

批量新增
不支持,只能for循环插入了,这个有点鸡肋

查询

		    db.collection('users').where({
		        _id:user_id
		    }).get().then(res=>{
		        if(res.length > 0){
		            console.log('res',res)
		        }
		    })

查看分页查询教程
修改
通过主键id修改:

			let formData = {}
			formData['sex'] = formData['sex']?'boy':'girl'
            formData['accountId'] = accountId
            db.collection('users').doc(user_id).update({
                data: formData,
                success: function(res) {
                   console.log('修改成功')
                }
            })

通过条件修改(需要通过云函数):

const cloud = require('wx-server-sdk')
const db = cloud.database()
const _ = db.command

exports.main = async (event, context) => {
  try {
    return await db.collection('users').where({
      sex: "girl"
    })
    .update({
      data: {
        sex: _.eq("boy")
      },
    })
  } catch(e) {
    console.error(e)
  }
}

修改字段中数组类型字段的某个值:

{
  "numbers": [10, 20, 30]
}
db.collection('users').doc(user_id).update({
  data: {
    'numbers.1': 30
  },
})

删除
根据主键id删除:

            db.collection('users').doc(user_id).remove({
              success: function(res) {
                console.log('删除成功')
              }
            })      

批量删除(需要在云函数操作):

// 使用了 async await 语法
const cloud = require('wx-server-sdk')
const db = cloud.database()
const _ = db.command

exports.main = async (event, context) => {
  try {
    return await db.collection('users').where({
      sex: "boy"
    }).remove()
  } catch(e) {
    console.error(e)
  }
}

如果对你有帮助,看完别忘了转发,收藏~~

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值