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

相关文章

Spring Boot整合Redis注解实现增删改查功能(Redis注解使用)

《SpringBoot整合Redis注解实现增删改查功能(Redis注解使用)》文章介绍了如何使用SpringBoot整合Redis注解实现增删改查功能,包括配置、实体类、Repository、Se... 目录配置Redis连接定义实体类创建Repository接口增删改查操作示例插入数据查询数据删除数据更

Mysql数据库聚簇索引与非聚簇索引举例详解

《Mysql数据库聚簇索引与非聚簇索引举例详解》在MySQL中聚簇索引和非聚簇索引是两种常见的索引结构,它们的主要区别在于数据的存储方式和索引的组织方式,:本文主要介绍Mysql数据库聚簇索引与非... 目录前言一、核心概念与本质区别二、聚簇索引(Clustered Index)1. 实现原理(以 Inno

使用python生成固定格式序号的方法详解

《使用python生成固定格式序号的方法详解》这篇文章主要为大家详细介绍了如何使用python生成固定格式序号,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下... 目录生成结果验证完整生成代码扩展说明1. 保存到文本文件2. 转换为jsON格式3. 处理特殊序号格式(如带圈数字)4

Java使用Swing生成一个最大公约数计算器

《Java使用Swing生成一个最大公约数计算器》这篇文章主要为大家详细介绍了Java使用Swing生成一个最大公约数计算器的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下... 目录第一步:利用欧几里得算法计算最大公约数欧几里得算法的证明情形 1:b=0情形 2:b>0完成相关代码第二步:加

Java 的ArrayList集合底层实现与最佳实践

《Java的ArrayList集合底层实现与最佳实践》本文主要介绍了Java的ArrayList集合类的核心概念、底层实现、关键成员变量、初始化机制、容量演变、扩容机制、性能分析、核心方法源码解析、... 目录1. 核心概念与底层实现1.1 ArrayList 的本质1.1.1 底层数据结构JDK 1.7

Java中流式并行操作parallelStream的原理和使用方法

《Java中流式并行操作parallelStream的原理和使用方法》本文详细介绍了Java中的并行流(parallelStream)的原理、正确使用方法以及在实际业务中的应用案例,并指出在使用并行流... 目录Java中流式并行操作parallelStream0. 问题的产生1. 什么是parallelS

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

C++中unordered_set哈希集合的实现

《C++中unordered_set哈希集合的实现》std::unordered_set是C++标准库中的无序关联容器,基于哈希表实现,具有元素唯一性和无序性特点,本文就来详细的介绍一下unorder... 目录一、概述二、头文件与命名空间三、常用方法与示例1. 构造与析构2. 迭代器与遍历3. 容量相关4

Linux join命令的使用及说明

《Linuxjoin命令的使用及说明》`join`命令用于在Linux中按字段将两个文件进行连接,类似于SQL的JOIN,它需要两个文件按用于匹配的字段排序,并且第一个文件的换行符必须是LF,`jo... 目录一. 基本语法二. 数据准备三. 指定文件的连接key四.-a输出指定文件的所有行五.-o指定输出

Linux jq命令的使用解读

《Linuxjq命令的使用解读》jq是一个强大的命令行工具,用于处理JSON数据,它可以用来查看、过滤、修改、格式化JSON数据,通过使用各种选项和过滤器,可以实现复杂的JSON处理任务... 目录一. 简介二. 选项2.1.2.2-c2.3-r2.4-R三. 字段提取3.1 普通字段3.2 数组字段四.