《微信小程序开发从入门到实战》学习三十九

4.2 云开发JSON数据库

4.2.10 查询数组和对象

1.匹配记录中的嵌套字段

    db.collection('testOne').add({data:{style:{color:'red'}}})

    db.collection('testOne').add({data:{style:{color:'blue'}}})

插入两天记录,如果希望查询style.color为blue的记录,有两种查询方式:

//方式一:传入相同结构的对象作为查询条件

    db.collection('testOne').where({

      style: {color: 'blue'}

    }).get().then(res => {

      console.log(res.data)

    })

//方式二:使用“点表示法”查询

db.collection('testOne').where({

  'style.color': 'blue' //使用“点表示法”查询,对象的属性必须用引号引起来,否则有语法错误

}).get().then(res => {

  console.log(res.data)

})

2.匹配数组

db.collection('testOne').add({data:{data:[1,2,3]}})

想筛出这条记录,完全可以传入相同的数组来筛选:

db.collection('testOne').where({

  data: [1,2,3]

}).get().then(res => {

  console.log(res.data)

})

2.匹配数组中的元素,通过数组中的元素找到数组所在的记录,代码如下:

db.collection('testOne').where({

  data: 2

}).get().then(res => {

  console.log(res.data)

})

3.匹配数组第n项元素

想找到数组第n项等于某值的数组所在的记录,用“字段名.n”为key进行匹配:

//找出data数组第2项的值为2的记录

db.collection('testOne').where({

  'data.1': 2 //数组下标从0开始

}).get().then(res => {

  console.log(res.data)

})

4.结合查询指令对数组进行匹配

使用查询指令筛选出数组中存在满足给定比较条件的记录。示例代码如下:

//找出所有data字段的数组值中存在包含大于1的值的记录

   db.collection('testOne').where({

    data: db.command.gt(1)

  }).get().then(res => {

    console.log(res.data)

  })

5.匹配多重嵌套的数组的对象

db.collection('testOne').add({data:{test:{objects: [{data:[1,2,3]},{data:[5,6,7]}]}}})

找出集合中所有满足test.objects数组第一个元素的data的第三项等于3的记录,代码如下:

  db.collection('testOne').where({

    'test.objects.0.data.2': 3

  }).get().then(res => {

    console.log(res.data)

  })

在嵌套查询可以不指定数组的下标,示例代码如下:

//找出集合所有满足test.objects数组中任意一项data字段包含2的记录

   db.collection('testOne').where({

    'test.objects.data': 2

  }).get().then(res => {

    console.log(res.data)

  })

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/190432.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux学习——模拟实现mybash小程序

目录 一,跟正宗的bash见个面 二,实现一个山寨的bash 1.提示符 2.输入命令与回显命令 3.解析命令 4.执行命令 5.执行逻辑 三,全部代码 一,跟正宗的bash见个面 在这篇文章中,我会写一个myshell小程序。这个小程序…

logback-spring.xml详解

《springboot使用logback日志框架超详细教程》文中,filter中最重要的两个过滤器LevelFilter(日志级别精确匹配)、ThresholdFilter(阈值过滤) 的描述非常准确: springboot使用logback日志框架超详细教程_sp…

SQL Server数据库部署

数据库简介 使用数据库的必要性 使用数据库可以高效且条理分明地存储数据,使人们能够更加迅速、方便地管理数据。数据库 具有以下特点。 》可以结构化存储大量的数据信息,方便用户进行有效的检索和访问。 》 可以有效地保持数据信息的一致性&#xff0c…

vue el-cascader 省市区封装及使用

使用了 Element UI 中的 el-cascader 组件&#xff0c;并对其进行了进一步封装和定制 创建组件index.vue (src/components/addressCascader/index.vue) <template><div><el-cascaderv-if"showca"size"large":props"props":optio…

【个人记录】NGINX反向代理grpc服务

最开始使用proxy_pass去代理了grpc服务&#xff0c;结果请求时候报错提示&#xff1a; rpc error: code Unavailable desc connection error: desc "error reading server preface: http2: frame too large"后来才知道代理grpc服务需要使用grpc_pass&#xff0c;…

Jenkins——节点

Jenkins服务运行在一台服务器上&#xff0c;但是服务器的资源时有限的&#xff0c;那Jenkins服务的构建速度也是有限的。当项目比较多或规模大时&#xff0c;会超出Jenkins的构建能力。单个Jenkins不能满足需求&#xff0c;但是布置多个Jenkins服务比较麻烦&#xff0c;管理起来…

【Casbin】一篇文章入门Casbin

Casbin Casbin模型基础&#xff08;PERM&#xff09;Policy定义Request定义MatchersEffect ACL模型RBAC模型Go语言实战使用前先下载casbin包新建一个Casbin enforcer判断是否能通过增加Policy删除Policy更新Policy获取Policy Casbin 权限管理在几乎每个系统中都是必备的模块。…

java设计模式学习之【桥接模式】

文章目录 引言桥接模式简介定义与用途&#xff1a;实现方式 使用场景优势与劣势桥接模式在Spring中的应用绘图示例代码地址 引言 想象你正在开发一个图形界面应用程序&#xff0c;需要支持多种不同的窗口操作系统。如果每个系统都需要写一套代码&#xff0c;那将是多么繁琐&am…

【vue-router】useRoute 和 useRouter 的区别

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 仓库主页&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 欢迎点赞…

一起学docker系列之十四Dockerfile微服务实践

目录 1 前言2 创建微服务模块2.1 **创建项目模块**2.2 **编写业务代码** 3 编写 Dockerfile4 构建 Docker 镜像5 运行 Docker 容器6 测试微服务7 总结8 参考地址 1 前言 微服务架构已经成为现代软件开发中的一种重要方式。而 Docker 提供了一种轻量级、便携式的容器化解决方案…

业务运营常用的ChatGPT通用提示词模板

业务目标设定和策略制定&#xff1a;请帮助我设定明确的业务目标&#xff0c;并制定相应的运营策略&#xff0c;以便我能够更好地指导团队开展工作。 市场调研和分析&#xff1a;请帮助我进行市场调研和分析&#xff0c;包括竞争对手、市场规模、客户需求等方面的内容&#xf…

ESP32和ESP8266的ESP-MESH

ESP32和ESP8266的ESP-MESH 功能介绍一、介绍ESP-MESH二、安装painlessMesh库三、ESP-MESH基本示例&#xff08;广播消息&#xff09;四、示范 功能介绍 了解如何使用ESP-MESH网络协议通过ESP32和ESP8266 NodeMCU板构建网状网络。 ESP-MESH允许多个设备&#xff08;节点&#x…

位运算的高频算法题

关卡名 位运算的高频算法题 我会了✔️ 内容 1.理解位运算如何统计1的个数的 ✔️ 2.理解位运算如何实现加法 ✔️ 3.理解递归乘法是如何实现的 ✔️ 1 位移的妙用 位移操作是一个很重要的问题&#xff0c;可以统计数字中1的个数&#xff0c;在很多高性能软件中也大量应…

群晖NAS配置之自有服务器frp实现内网穿透

什么是frp frp 是一个专注于内网穿透的高性能的反向代理应用&#xff0c;支持 TCP、UDP、HTTP、HTTPS 等多种协议&#xff0c;且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。今天跟大家分享一下frp实现内网穿透 为什么使用 frp &a…

基于瑞芯微rk3588+寒武纪 | 38TOPS INT8算力的AI边缘计算盒子,智能安防、智慧工地、智慧城管、智慧油站

边缘计算盒子 瑞芯微rk3588寒武纪 | 38TOPS INT8算力 ● 采用 Big-Little 大小核架构&#xff0c;搭载四核 A76四核 A55&#xff0c;CPU主频高达 2.4GHz &#xff0c;提供1MB L2 Cache 和 3MB L3 &#xff0c;Cache提供更强的 CPU 运算能力。 ● 高性能四核 Mali-G610 GPU&a…

【2024秋招】2023-9-22 金山云文档服务端开发一面

1 OS 1.1 堆和栈的区别&#xff0c;什么时候用到堆&#xff0c;什么时候用到栈呢 堆和栈是两种不同的内存分配方式&#xff0c;它们在计算机编程中有着各自的用途和特点。以下是它们之间的主要区别以及在何时使用它们&#xff1a; 1.1.1 堆&#xff08;Heap&#xff09;&…

在vue中如何书写 SSR 友好的代码

文章目录 前言服务端的响应性​组件生命周期钩子​访问平台特有 API​跨请求状态污染​激活不匹配​自定义指令​teleports​后言 前言 hello world欢迎来到前端的新世界 &#x1f61c;当前文章系列专栏&#xff1a;vue.js &#x1f431;‍&#x1f453;博主在前端领域还有很多…

i++和++i的区别

i和i的区别 一、基本概念 两者的作用都是自增加1。 单独拿出来说的话&#xff0c;i和i&#xff0c;效果都是一样的&#xff0c;就是ii1 public static void main(String[] args) {int i 0;i;System.out.println(i);}public static void main(String[] args) {int i 0;i;Sys…

【开源】基于JAVA语言的校园电商物流云平台

项目编号&#xff1a; S 034 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S034&#xff0c;文末获取源码。} 项目编号&#xff1a;S034&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 商品数据模块2.3 快…

FH Admin Shiro反序列化漏洞复现

0x01 产品简介 FH Admin 是一款 java 快速开发平台。 0x02 漏洞概述 FH Admin CMS 存在 shiro 反序列化漏洞&#xff0c;该漏洞源于软件存在硬编码的 shiro-key&#xff0c;攻击者可利用该 key 生成恶意的序列化数据&#xff0c;在服务器上执行任意代码&#xff0c;执行系统命…