unicloud 集合 Collection 详解及其使用示例

2024-03-08 20:44

本文主要是介绍unicloud 集合 Collection 详解及其使用示例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Collection

Collection是unicloud数据的指定表集合
获取集合Collection示例如下

const db = uniCloud.database();
// 获取 `user` 集合的引用
const collection = db.collection('user');

集合 Collection

通过 db.collection(name) 可以获取指定集合的引用,在集合上可以进行以下操作

类型接口说明
add新增记录(触发请求)
计数count获取符合条件的记录条数
get获取集合中的记录,如果有使用 where 语句定义查询条件,则会返回匹配结果集 (触发请求)
引用doc获取对该集合中指定 id 的记录的引用
查询条件where通过指定条件筛选出匹配的记录,可搭配查询指令(eq, gt, in, …)使用
-skip跳过指定数量的文档,常用于分页,传入 offset
-orderBy排序方式
-limit返回的结果集(文档数量)的限制,有默认值和上限值
-field指定需要返回的字段

查询及更新指令用于在 where 中指定字段需满足的条件,指令可通过 db.command 对象取得。

准备资料

在写collection示例前,我得先介绍一下该准备的环境,当然如果你看过前面的章节你也可以跳过这段,

一个unicloud 云数据库并且有users表
在这里插入图片描述
一个关联了这个数据库的uniapp项目
在这里插入图片描述
如果没有的话,建议看一下本专栏的其他文章

add 写

在cloudfunctions目录上右键新建addUser函数
add方法示例将在本云函数代码文件中书写

在这里插入图片描述
add 语法规则

 collection.add(data)

tips:

  • 目前云服务商为阿里云时,若集合不存在,调用add方法会自动创建集合。后续可能调整此行为,此方式创建的集合不带索引、表结构,请勿依赖此方式创建集合。
参数类型必填说明
dataobjectarray

add()函数有返回值,当插入数据一条时
返回的插入这条记录的_id
当插入多条数据时,反回的是由_id组成的数组

示例代码如下

云函数代码

'use strict';
// 获取集合的引用
const db = uniCloud.database()
exports.main = async (event, context) => {const result=await db.collection('user').add(event)//返回数据给客户端return result
};

页面代码

<template><button @click="getUniCloudData">add示例</button>
</template><script setup>const getUniCloudData=async ()=>{const result = await uniCloud.callFunction({name:'addUser',data:{name:'张三',age:38,email:'zhangshan@email.com',intro:'一个普普通通的律师'}})console.log(result)}
</script><style>
</style>

页面显示’
在这里插入图片描述
输出如下
在这里插入图片描述

查看unicloud控制台,可以看到,数据新增成功
在这里插入图片描述
新增多条数据,不需要改动云函数代码,只需要在调用时将data参数改为数组对象即可
示例代码

<template><button @click="getUniCloudData">add示例</button>
</template><script setup>const getUniCloudData=async ()=>{const result = await uniCloud.callFunction({name:'addUser',data:[{name:'ggbond',age:38,email:'ggbond@email.com',intro:'一只猪'},{name:'猪八戒',age:38,email:'zhubajie@email.com',intro:'一直吃素的猪'},{name:'佩奇',age:38,email:'peiqi@email.com',intro:'一只吹风机'},]})console.log(result)}
</script><style>
</style>

输出结果如下
在这里插入图片描述
数据内如下
在这里插入图片描述

count 计数

count()语法规则

任何查询的集合.count()

示例代码如下
创建一个countDemo云函数并在里面书写如下代码
即查询users表内有多少条数据

'use strict';
const db = uniCloud.database()
exports.main = async (event, context) => {const result = await db.collection('users').count()return result
};

在这里插入图片描述
页面代码如下
在这里插入图片描述
输出结果如下
在这里插入图片描述

get 读

get()函数用于获取集合中的记录,如果有使用 where 语句定义查询条件,则会返回匹配结果集 (触发请求)
这里先简单的介绍get函数,where单独篇章介绍

语法

db.collection('users').get()

示例代码如下图

云函数代码
在这里插入图片描述
页面调用云函数代码
在这里插入图片描述
示例效果如下
将所有云数据库users表内的数据都拿回来了
在这里插入图片描述

doc 引用

doc()获取对该集合中指定 id 的记录的引用
语法如下
doc不能单独使用需要搭配其他的函数使用
比如搭配get()函数,获取数据库内指定表内的_id值的数据
示例如下
获取unicloud数据库内的ggbond的数据,ggbond数据_id值为如下
在这里插入图片描述
示例代码如下

云函数代码

'use strict';
const db = uniCloud.database()
exports.main = async (event, context) => {const result = await db.collection('users').doc('65eaa82b358ba96e9f0fe233').get()return result
};

页面引用云函数代码

const getUserInfo = async _=>{const result = await uniCloud.callFunction({name:'docKeyData'})}

输出如下
在这里插入图片描述

where 条件查询

where 语法太多,这里不做展开

skip 跳过

skip跳过指定数量的文档,常用于分页,传入 offset

示例如下
跳过如下数据库的前2条数据
在这里插入图片描述
示例代码如下

云函数代码

'use strict';
exports.main = async (event, context) => {const result = await uniCloud.database().collection('users').skip(2).get()//返回数据给客户端return result
};

页面引用云函数代码

const skipFun=async _=>{const result =await uniCloud.callFunction({name:'skip'})console.log(result)
}

输出如下
可以看出,跳过了签名两条
在这里插入图片描述

orderBy 排序

orderBy排序方式

tips:

  • 排序字段存在多个重复的值时排序后的分页结果,可能会出现某条记录在上一页出现又在下一页出现的情况。这时候可以通过指定额外的排序条件比如.orderBy(“name”, “asc”).orderBy(“_id”, “asc”)来规避这种情况。

语法如下

collection.orderBy(field, orderType)
参数类型必填说明
fieldstring排序的字段
orderTypestring排序的顺序,升序(asc) 或 降序(desc)

对查询结果,按照年龄降序
示例代码如下

云函数代码

'use strict';
exports.main = async (event, context) => {const result = await uniCloud.database().collection('users').orderBy('age','desc').get()return result
};

页面引用云函数代码

const orderBy = async _=>{const result = await uniCloud.callFunction({name:'orderBy'})console.log(result)
}

输出结果如下
在这里插入图片描述

limit 限制返回

limit 返回的结果集(文档数量)的限制,有默认值和上限值
语法

collection.limit(8) //不输入则默认10

限制数据库查询返回三条
示例代码如下

云函数代码

'use strict';
exports.main = async (event, context) => {const result = await uniCloud.database().collection().limit(3).get()return result
};

页面引用云函数代码

const limit = async _=>{const result = await uniCloud.callFunction({name:'limit'})console.log(result)
}

输出如下
在这里插入图片描述
只返回了三条

field 返回指定字段

field 从查询结果中,过滤掉不需要的字段,或者指定要返回的字段。
语法如下

collection.field()
参数类型必填说明
-object过滤字段对象,包含字段名和策略,不返回传false,返回传true

tips:

  • field内指定是否返回某字段时,不可混用true/false。即{‘a’: true, ‘b’: false}是一种错误的参数格式
  • 只有使用{ ‘_id’: false }明确指定不要返回_id时才会不返回_id字段,否则_id字段一定会返回。

查询unicloud数据库users表,只返回name字段

示例代码如下

云函数代码

'use strict';
exports.main = async (event, context) => {const result = await uniCloud.database().collection('users').field('name').get()return result
};

页面引用代码

const field =async _=>{const result = await uniCloud.callFunction({name:'field'})console.log(result)
}

输出如下
在这里插入图片描述

这篇关于unicloud 集合 Collection 详解及其使用示例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/788343

相关文章

Java Spring 中 @PostConstruct 注解使用原理及常见场景

《JavaSpring中@PostConstruct注解使用原理及常见场景》在JavaSpring中,@PostConstruct注解是一个非常实用的功能,它允许开发者在Spring容器完全初... 目录一、@PostConstruct 注解概述二、@PostConstruct 注解的基本使用2.1 基本代

C#使用StackExchange.Redis实现分布式锁的两种方式介绍

《C#使用StackExchange.Redis实现分布式锁的两种方式介绍》分布式锁在集群的架构中发挥着重要的作用,:本文主要介绍C#使用StackExchange.Redis实现分布式锁的... 目录自定义分布式锁获取锁释放锁自动续期StackExchange.Redis分布式锁获取锁释放锁自动续期分布式

springboot使用Scheduling实现动态增删启停定时任务教程

《springboot使用Scheduling实现动态增删启停定时任务教程》:本文主要介绍springboot使用Scheduling实现动态增删启停定时任务教程,具有很好的参考价值,希望对大家有... 目录1、配置定时任务需要的线程池2、创建ScheduledFuture的包装类3、注册定时任务,增加、删

SpringBoot整合mybatisPlus实现批量插入并获取ID详解

《SpringBoot整合mybatisPlus实现批量插入并获取ID详解》这篇文章主要为大家详细介绍了SpringBoot如何整合mybatisPlus实现批量插入并获取ID,文中的示例代码讲解详细... 目录【1】saveBATch(一万条数据总耗时:2478ms)【2】集合方式foreach(一万条数

使用Python实现矢量路径的压缩、解压与可视化

《使用Python实现矢量路径的压缩、解压与可视化》在图形设计和Web开发中,矢量路径数据的高效存储与传输至关重要,本文将通过一个Python示例,展示如何将复杂的矢量路径命令序列压缩为JSON格式,... 目录引言核心功能概述1. 路径命令解析2. 路径数据压缩3. 路径数据解压4. 可视化代码实现详解1

Pandas透视表(Pivot Table)的具体使用

《Pandas透视表(PivotTable)的具体使用》透视表用于在数据分析和处理过程中进行数据重塑和汇总,本文就来介绍一下Pandas透视表(PivotTable)的具体使用,感兴趣的可以了解一下... 目录前言什么是透视表?使用步骤1. 引入必要的库2. 读取数据3. 创建透视表4. 查看透视表总结前言

Python装饰器之类装饰器详解

《Python装饰器之类装饰器详解》本文将详细介绍Python中类装饰器的概念、使用方法以及应用场景,并通过一个综合详细的例子展示如何使用类装饰器,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录1. 引言2. 装饰器的基本概念2.1. 函数装饰器复习2.2 类装饰器的定义和使用3. 类装饰

Python 交互式可视化的利器Bokeh的使用

《Python交互式可视化的利器Bokeh的使用》Bokeh是一个专注于Web端交互式数据可视化的Python库,本文主要介绍了Python交互式可视化的利器Bokeh的使用,具有一定的参考价值,感... 目录1. Bokeh 简介1.1 为什么选择 Bokeh1.2 安装与环境配置2. Bokeh 基础2

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

MySQL 中的 JSON 查询案例详解

《MySQL中的JSON查询案例详解》:本文主要介绍MySQL的JSON查询的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql 的 jsON 路径格式基本结构路径组件详解特殊语法元素实际示例简单路径复杂路径简写操作符注意MySQL 的 J