云端库的增删改查,上传云储存"/>
uniCloud云端库的增删改查,上传云储存
文章目录
- 前言
- 获取集合的引用
- 集合 Collection
- 查询筛选指令
- .conllection 云函数
- add 新增
- 查询 where
- 删除 remove()
- 更新 updata
- uniCloud.callFunction()
- 云储存
- 总结
前言
本文介绍uniCloud创建云函数以及云对象的方法,以及数据的增删改查,云函数的调用,传值等,云储存上传资源
提示:以下是本篇文章正文内容,下面案例可供参考
获取集合的引用
云函数
const db = uniCloud.database();
// 获取 `user` 集合的引用
exports.main = async (event, context) => {
const collection = db.collection('user');
}使用
uniCloud.callFunction({name:"users"//云函数名})
云对象
const db = uniCloud.database();
module.exports = {_before: function () { // 通用预处理器},get(){db.collection('users').get()}
}
使用
//引入
const cloudObj=uniCloud.importObject();
cloudObj.get()
集合 Collection
通过 db.collection(name) 可以获取指定集合的引用,在集合上可以进行以下操作
类型 | 接口 | 说明 |
---|---|---|
写 | add | 新增记录(触发请求) |
计数 | count | 获取符合条件的记录条数 |
读 | get | 获取集合中的记录,如果有使用 where 语句定义查询条件,则会返回匹配结果集 (触发请求) |
引用 | doc | 获取对该集合中指定 id 的记录的引用 |
查询条件 | where | 通过指定条件筛选出匹配的记录,可搭配查询指令(eq, gt, in, …)使用 |
skip | 跳过指定数量的文档,常用于分页,传入 offset | |
orderBy | 排序方式 | |
limit | 返回的结果集(文档数量)的限制,有默认值和上限值 | |
field | 指定需要返回的字段 |
查询筛选指令
类型 | 接口 | 说明 |
---|---|---|
比较运算 | eq | 字段等于 == |
neq | 字段不等于 != | |
gt | 字段大于 > | |
gte | 字段大于等于 >= | |
lt | 字段小于 < | |
lte | 字段小于等于 <= | |
in | 字段值在数组里 | |
nin | 字段值不在数组里 | |
逻辑运算 | and | 表示需同时满足指定的所有条件 |
or | 表示需同时满足指定条件中的至少一个 |
.conllection 云函数
const db = uniCoud.database()
exports.main = =async (event,context)=>{let {num} = =event;//callFunction传递的data数据return await db.conllection('users').get()
}
add 新增
// 单条插入数据
let res = await collection('users').add()//对象
// 批量插入数据
let res = await collection('users').add([])//数组
查询 where
- limit(1)返回一条
- skip(4) 跳过指定位置
- orderBy(field, asc) 排序 //field字段 //asc升序/dasc降序
- field() 查询返回指定的字段
let res = await db.collection('goods').limit(1).where({//返回一条数据category: 'computer',//符合此条件的表name: new RegExp('^ABC')//正则匹配
}).get()skip(4) 跳过指定位置
let res = await collection('users').skip(4).get()orderBy(field, asc) 排序 //field字段 //asc升序/dasc降序
let res = await collection.orderBy("name", "asc").get()field() 查询返回指定的字段
collection.field({ 'age': true }) //只返回age字段、_id字段,其他字段不返回
删除 remove()
collection.doc(_id).remove()
// 清理全部数据
let res = await collection('users').doc().remove();//删除指定文档
let res = await collection('users').doc(document.id).remove();
更新 updata
使用腾讯云时更新方法必须搭配doc、where方法使用,db.collection(‘test’).update()会报如下错误:param should have required property ‘query’
未使用set、remove更新操作符的情况下,此方法不会删除字段,仅将更新数据和已有数据合并。
更新对象
//根据doc-id更新这条数据,注意doc-id不可出现在update对象里否者不生效
let res = await collection.doc('doc-id').update({name: "Hey",count: {fav: 1}
});
更新数组
//直接数组下标传值
let res = await collection.doc('doc-id').update({arr: {1: "uniCloud"}
})
更新文档,如果不存在则创建
collection.doc().set()
此方法会覆写已有字段,需注意与update表现不同,比如以下示例执行set之后follow字段会被删除
let res = await collection.doc('doc-id').set({name: "Hey",count: {fav: 1}
})
批量更新文档
const dbCmd = dbmand
let res = await collection.where({name: dbCmd.eq('hey')}).update({age: 18,
})
更新数组内指定下标的元素
const res = await db.collection('query').doc('1').update({// 更新students[1]['students.' + 1]: {name: 'wang'}
})
查询指令
const dbCmd = dbmand
const myOpenID = "xxx"
let res = await db.collection('articles').where({quarter: dbCmd.eq('2020 Q2')
}).get()
uniCloud.callFunction()
调用云函数
uniCloud.callFunction({name:"mydata"//云函数名称data:{num:“”}//传输的数据
})
云储存
在使用云储存时要保持HbuilderX支持这个版本的uni组件,我的由于使用半年前的HbuilderX,上传一直显示没权限,大家注意!!
直接引用组件就可以上传云储存库
<uni-file-picker v-model="imageValue" fileMediatype="image" mode="grid" @select="select" @progress="progress" @success="success" @fail="fail"
/>
<script>export default {data() {return {imageValue:[]}},methods:{// 获取上传状态select(e){console.log('选择文件:',e)},// 获取上传进度progress(e){console.log('上传进度:',e)},// 上传成功success(e){console.log('上传成功')},// 上传失败fail(e){console.log('上传失败:',e)}}}
</script>
参考官网文档
参考咸虾米uniCloud视频
总结
提示:这里对文章进行总结:
uniCloud云端库基础的增删改查,以及遇到的问题,传图片直接显示403没全校上传云储存,已解决
更多推荐
uniCloud云端库的增删改查,上传云储存
发布评论