新建表结构描述文件
todo 为自定义的表名
表结构描述文件的默认后缀为 .schema.json
设置表的操作权限
uniCloud-aliyun/database/todo.schema.json
默认的操作权限都是 false
"permission": {
"read": false,
"create": false,
"update": false,
"delete": false
},
根据需要修改为 true ,即允许读取表中的数据、新增数据、修改数据、删除数据
"permission": {
"read": true,
"create": true,
"update": true,
"delete": true
},
设置表的字段
默认只有字段 _id
"properties": {
"_id": {
"description": "ID,系统自动生成"
}
}
此处新增字段 content
"properties": {
"_id": {
"description": "ID,系统自动生成"
},
"content": {
"description": "待办事项"
}
}
新建表
将表结构描述文件上传到云服务器,即可完成表的创建
增 – 新增数据
async save() {
// 输入cdb 可快捷生成
const db = uniCloud.database();
// 在表 todo 中新增数据 {content: '写日记'}
let res = await db.collection('todo').add({
content: '写日记'
})
if (res.result.code === 0) {
uni.showToast({
title: '新增成功!'
});
}
},
批量新增,传入对象数组即可。
.add([{
name: '张三'
},{
name: '李四'
},{
name: '王五'
}])
删 – 删除数据
<unicloud-db ref="udb" collection="todo" v-slot:default="{data, loading, error}">
<view v-if="error">{{error.message}}</view>
<view v-else-if="loading">正在加载...</view>
<view v-else>
<ol>
<li v-for="item in data">
{{ item.content}}
<button @click="del(item._id)">删除</button>
</li>
</ol>
</view>
</unicloud-db>
del(id) {
this.$refs.udb.remove(id)
},
改 – 修改数据
async edit(item) {
const db = uniCloud.database();
let res = await db.collection("todo").where({
_id: item._id
})
.update({
content: '读书'
})
if (res.result.code === 0) {
uni.showToast({
title: '修改成功!'
});
}
},
更新数组时,以数组下标作为key即可
.update({
arr: {
1: "uniCloud"
}
})
批量更新,添加 where 搜索条件即可
.where("name=='hey'").update({
age: 18,
})
查 – 读取数据
在 collection 属性配置对应的表名即可,如 “todo”
<unicloud-db collection="todo" v-slot:default="{data, loading, error}">
<view v-if="error">{{error.message}}</view>
<view v-else-if="loading">正在加载...</view>
<view v-else>
<ol>
<li v-for="item in data">
{{ item.content}}
</li>
</ol>
</view>
</unicloud-db>