uniCloud云端库的增删改查,上传云储存


前言

本文介绍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 = db.command
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 = db.command
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没全校上传云储存,已解决

猜你喜欢

转载自blog.csdn.net/yang20000222/article/details/130889983