与删的方法一样,cloudDB也内置了增的方法。

add

语法
this.$refs.udb.add(value, options)
udb为unicloud-db组件的ref属性值
必选参数 value

属性 类型 默认值 描述
value Object 新增数据

可选参数 options

属性 类型 默认值 描述
action string 云端执行数据库查询的前或后,触发某个action函数操作,进行预处理或后处理,详情。HBuilder 3.1.0+
showToast boolean true 是否显示更新成功后的提示框
toastTitle string 新增成功 新增成功后的toast提示
needLoading boolean true 是否显示Loading,HBuilderX 3.1.5+
loadingTitle string ‘’ 显示loading的标题,HBuilderX 3.1.5+
success function 新增成功后的回调
fail function 新增失败后的回调
complete function 完成后的回调

完整实例

  1. this.$refs.udb.add(value, {
  2. toastTitle: '新增成功', // toast提示语
  3. success: (res) => { // 新增成功后的回调
  4. const { code, message } = res
  5. },
  6. fail: (err) => { // 新增失败后的回调
  7. const { message } = err
  8. },
  9. complete: () => { // 完成后的回调
  10. }
  11. })

也可以通过clientDB API的方式直接调用添加函数,而不再需要用ref引用来获得对象。
代码块简写为cdb
image.png
image.png
其中collection后就是表名,add添加一个字段,如果数据库结构表中 create写的权限没有开启,则无法写入

服务端云函数中的增

新增文档

方法1: collection.add(data)
参数说明

参数 类型 必填 说明
data object | array {_id: ‘10001’, ‘name’: ‘Ben’} _id 非必填

响应参数
单条插入时

参数 类型 说明
id String 插入记录的id

批量插入时

参数 类型 说明
ids Array 批量插入所有记录的id

示例:

  1. // 单条插入数据
  2. let res = await collection.add({
  3. name: 'Ben'
  4. })
  5. // 批量插入数据
  6. let res = await collection.add([{
  7. name: 'Alex'
  8. },{
  9. name: 'Ben'
  10. },{
  11. name: 'John'
  12. }])

Tips

  • 云服务商为阿里云时,若集合不存在,调用add方法会自动创建集合。注意此方式创建的集合不带索引、表结构,尽量不要依赖此方式创建集合。

方法2: collection.doc().set(data)
也可通过 set 方法新增一个文档,需先取得文档引用再调用 set 方法。 如果文档不存在,set 方法会创建一个新文档。
参数说明

参数 类型 必填 说明
data object 更新字段的Object,{‘name’: ‘Ben’}

响应参数

参数 类型 说明
updated Number 更新成功条数,数据更新前后没变化时也会返回1
upsertedId String 创建的文档id
  1. let res = await collection.doc('doc-id').set({
  2. name: "Hey"
  3. });

注意

  • 自动生成的_id是自增的,后创建的记录的_id总是大于先生成的_id