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

相关文章

Python使用Spire.PDF实现为PDF添加水印

《Python使用Spire.PDF实现为PDF添加水印》在现代数字化办公环境中,PDF已成为一种广泛使用的文件格式,尤其是在需要保持文档格式时,下面我们就来看看如何使用Python为PDF文件添加水... 目录一、准备工作二、实现步骤1. 导入必要的库2. 创建 PdfDocument 对象3. 设置水印

Java中的ConcurrentBitSet使用小结

《Java中的ConcurrentBitSet使用小结》本文主要介绍了Java中的ConcurrentBitSet使用小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、核心澄清:Java标准库无内置ConcurrentBitSet二、推荐方案:Eclipse

Go语言结构体标签(Tag)的使用小结

《Go语言结构体标签(Tag)的使用小结》结构体标签Tag是Go语言中附加在结构体字段后的元数据字符串,用于提供额外的属性信息,这些信息可以通过反射在运行时读取和解析,下面就来详细的介绍一下Tag的使... 目录什么是结构体标签?基本语法常见的标签用途1.jsON 序列化/反序列化(最常用)2.数据库操作(

Java中ScopeValue的使用小结

《Java中ScopeValue的使用小结》Java21引入的ScopedValue是一种作用域内共享不可变数据的预览API,本文就来详细介绍一下Java中ScopeValue的使用小结,感兴趣的可以... 目录一、Java ScopedValue(作用域值)详解1. 定义与背景2. 核心特性3. 使用方法

spring中Interceptor的使用小结

《spring中Interceptor的使用小结》SpringInterceptor是SpringMVC提供的一种机制,用于在请求处理的不同阶段插入自定义逻辑,通过实现HandlerIntercept... 目录一、Interceptor 的核心概念二、Interceptor 的创建与配置三、拦截器的执行顺

利用c++判断水仙花数并输出示例代码

《利用c++判断水仙花数并输出示例代码》水仙花数是指一个三位数,其各位数字的立方和恰好等于该数本身,:本文主要介绍利用c++判断水仙花数并输出的相关资料,文中通过代码介绍的非常详细,需要的朋友可以... 以下是使用C++实现的相同逻辑代码:#include <IOStream>#include <vec

基于C++的UDP网络通信系统设计与实现详解

《基于C++的UDP网络通信系统设计与实现详解》在网络编程领域,UDP作为一种无连接的传输层协议,以其高效、低延迟的特性在实时性要求高的应用场景中占据重要地位,下面我们就来看看如何从零开始构建一个完整... 目录前言一、UDP服务器UdpServer.hpp1.1 基本框架设计1.2 初始化函数Init详解

SQL Server 中的表进行行转列场景示例

《SQLServer中的表进行行转列场景示例》本文详细介绍了SQLServer行转列(Pivot)的三种常用写法,包括固定列名、条件聚合和动态列名,文章还提供了实际示例、动态列数处理、性能优化建议... 目录一、常见场景示例二、写法 1:PIVOT(固定列名)三、写法 2:条件聚合(CASE WHEN)四、

springboot+redis实现订单过期(超时取消)功能的方法详解

《springboot+redis实现订单过期(超时取消)功能的方法详解》在SpringBoot中使用Redis实现订单过期(超时取消)功能,有多种成熟方案,本文为大家整理了几个详细方法,文中的示例代... 目录一、Redis键过期回调方案(推荐)1. 配置Redis监听器2. 监听键过期事件3. Redi

C#中checked关键字的使用小结

《C#中checked关键字的使用小结》本文主要介绍了C#中checked关键字的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录✅ 为什么需要checked? 问题:整数溢出是“静默China编程”的(默认)checked的三种用