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

相关文章

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

详解C#如何提取PDF文档中的图片

《详解C#如何提取PDF文档中的图片》提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使用,下面我们就来看看如何使用C#通过代码从PDF文档中提取图片吧... 当 PDF 文件中包含有价值的图片,如艺术画作、设计素材、报告图表等,提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使

Java中List的contains()方法的使用小结

《Java中List的contains()方法的使用小结》List的contains()方法用于检查列表中是否包含指定的元素,借助equals()方法进行判断,下面就来介绍Java中List的c... 目录详细展开1. 方法签名2. 工作原理3. 使用示例4. 注意事项总结结论:List 的 contain

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(

Python使用自带的base64库进行base64编码和解码

《Python使用自带的base64库进行base64编码和解码》在Python中,处理数据的编码和解码是数据传输和存储中非常普遍的需求,其中,Base64是一种常用的编码方案,本文我将详细介绍如何使... 目录引言使用python的base64库进行编码和解码编码函数解码函数Base64编码的应用场景注意