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

4.2 云开发JSON数据库

4.2.9 条件查询与查询指令

在查询数据时,有时需要对查找的数据添加一些限定条件,只获取满足给定条件的数据,这样的查询称为条件查询。

可以在集合引用上使用where方法指定查询条件,再用get方法,即可只返回满足指定查询条件的记录。

如果想要获取某个用户的所有未完成的待办事项,可以使用以下代码:

    db.collection('testOne').add({data:{done:false,myName:42}}) //添加未完成事项的记录

    db.collection('testOne').add({data:{done:true,myName:43}}) //添加已完成事项记录的记录

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

      _openid: 'user-open-id' , //指定用户的ID,大家换成自己的openid

      done:false //指定未完成的事项

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

      console.log(res.data)

    })

预览效果如下:

where方法接受一个对象参数,对象每个字段间的关系是“与”的关系,即需要同时满足这些匹配条件。在这个例子里,就是查询出_openid等于user-open-id且done等于false的记录。

想以“大于”,“小于”,或是“数组中是否包含某元素”作为条件,可以使用查询指令构造出复杂的查询条件。查询指令时数据库API的函数,被封装在db.command对象。

例如,希望查询进度小于50%的待办事项,可以使用以下代码:

     db.collection('testOne').add({data:{progress:49}})

    db.collection('testOne').add({data:{progress:50}})

    db.collection('testOne').add({data:{progress:51}})

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

      progress: db.command.lt(50) //使用db.command.lt限定progress字段的值小于50的条件

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

      console.log(res.data)

    })

db.command()对象中提供的查询指令如下所示

eq        等于

neq      不等于

lt          小于

lte        小于或等于

gt         大于

gte       大于或等于

in         字段值在给定数组中

nin        字段值不在给定数组中

and       条件与 需同时满足满足另一个条件

or         条件或 满足任何一个条件即可

and和or是逻辑指令。需要对多个添加同时进行判断时可以使用。

用and逻辑指令查询进度在20%-80%的待办事项代码如下:

    db.collection('testOne').add({data:{progress:21}})

    db.collection('testOne').add({data:{progress:81}})

    

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

      progress: db.command.gte(20).and(db.command.lte(80))

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

      console.log(res.data)

    })

用and做指令时,可以把它紧跟在其他查询指令后,可以传入另一个查询指令作为参数。

or指令也是一样的用法。

or指令可以对不同的字段进行条件查询,如查询询进度小于50%的待办事项或截止日期在今天之后的待办事项,代码如下:

   var date1 = new Date()

  db.collection('testOne').add({data:{progress:49,due:date1}})

  date1.setDate(date1.getDate() + 1)

  db.collection('testOne').add({data:{progress:50,due:date1}})

  date1.setDate(date1.getDate() - 2)

  db.collection('testOne').add({data:{progress:51,due:date1}})

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

  progress:db.command.lt(50)

},{

  due:db.command.lt(new Date())

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

  console.log(res.data)

})

使用and指令也可以对不同的字段进行条件查询,但没必要。第一个示例获取某个用户的所有未完成的待办事项就是and的这个用法。

明天学查询数组和对象,再见。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

springCache——jetcache缓存

文章目录 jetcache远程、本地缓存方案jetcache方法注解使用方式 jetcache远程、本地缓存方案 <dependency><groupId>com.alicp.jetcache</groupId><artifactId>jetcache-starter-redis</artifactId><version>2.6.4</version></de…

SpringBootCache缓存——j2cache

文章目录 缓存供应商变更&#xff1a;j2cache 缓存供应商变更&#xff1a;j2cache <!-- https://mvnrepository.com/artifact/net.oschina.j2cache/j2cache-core --><dependency><groupId>net.oschina.j2cache</groupId><artifactId>j2cache-cor…

Linux部分基础指令讲解

目录 1.echo指令 2.more指令 3.less指令&#xff08;重要&#xff09; 4.head指令 5.tail指令 6.管道| 7.时间相关的指令 8.cal指令 9.find指令 10.grep指令 1.echo指令 我们先看效果 如图所示我们可以看到显示器显示出了hellow world和hellow这两句话&#xff0c;我们的echo的…

(详细教程)笔记本电脑安装Ubuntu系统

1.前言 老的小米笔记本淘汰了&#xff0c;装一下linux系统玩一下。 使用工具如下&#xff1a;一台小米笔记本pro15.6一个惠普32G U盘一个台式机用于下载镜像等资源 2.下载Ubuntu桌面版 cn.ubuntu.com/download/de… 这里我下载的是 22.04.3 LTS 3.下载烧录工具&#xff0c…

定时任务特辑 | Quartz、xxl-job、elastic-job、Cron四个定时任务框架对比,和Spring Boot集成实战

专栏集锦&#xff0c;大佬们可以收藏以备不时之需&#xff1a; Spring Cloud 专栏&#xff1a;http://t.csdnimg.cn/WDmJ9 Python 专栏&#xff1a;http://t.csdnimg.cn/hMwPR Redis 专栏&#xff1a;http://t.csdnimg.cn/Qq0Xc TensorFlow 专栏&#xff1a;http://t.csdni…

提升Jmeter测试效率的9种参数化方法!

jmeter工具无论做接口测试还是性能测试&#xff0c;参数化都是一个必须掌握且非常有用的知识点。参数化的使用场景: 1&#xff09;多个请求都是同一个ip地址&#xff0c;若服务器地址更换了&#xff0c;则脚本需要更改每个请求的ip 2&#xff09;注册账号&#xff0c;不允许账…

探索未来能源:可控核聚变的挑战与希望

探索未来能源:可控核聚变的挑战与希望 引言 随着人类社会的不断发展,对能源的需求也在持续增长。传统的化石燃料能源在燃烧过程中会产生大量的二氧化碳和其他温室气体,导致全球气候变暖,对环境产生了重大威胁。因此,寻找一种清洁、可持续、高效的能源成为了当务之急。在…

linux学习资源

linux书籍资源&#xff08;pdf版&#xff09;&#xff1a; 有需要的请在评论区留言。 《Linux Basics for Hackers》 kaiwan的三部曲&#xff1a; 《Hands-On System Programming with Linux》 《Linux Kernel Programming》 《Linux Kernel Programming Part 2》 《Ma…

C#中GDI+图形图像绘制(直线、矩形、圆、椭圆、圆弧、扇形、多边形)

目录 一、直线 二、矩形 三、椭圆 四、圆 五、圆弧 六、扇形 七、多边形 八、示例源码 一、直线 调用Graphics类中的DrawLine()方法&#xff0c;结合Pen对象可以绘制直线。DrawLine()方法有以下两种构造函数。 第一种用于绘制一条连接两个Point结构的线。当参数pt1的值…

你的身份信息是否被冒用,办了电话卡却毫不知情?

近日&#xff0c;公安部发布电信网络诈骗及其关联违法犯罪联合惩戒办法&#xff0c;向社会公开征求意见。 在征求意见稿中&#xff0c;非法买卖、出租、出借电话卡三张以上&#xff0c;假冒他人身份或者虚构代理关系开立电话卡等行为被列入惩戒。 为了防止自身利益受到侵害&a…

Chrome 拓展开发系列:什么是 Chrome 拓展?

文章目录 Chrome 拓展&#xff08;Chrome Extension&#xff09;是什么为什么使用 Chrome 拓展&#xff1f;个性化浏览体验提高工作效率改善隐私和安全创新新功能 发展历史2009 年&#xff1a;初版发布2010 年&#xff1a;稳步增长2013 年&#xff1a;Chrome App 和扩展合并201…

【计算机网络漫谈】OSI七层模型与TCP/IP四层(参考)模型

一、七层&#xff1f;四层&#xff1f; 1.为什么需要协议&#xff1f;2.OSI七层模型是干什么的&#xff1f;3.TCP/IP四层&#xff08;参考&#xff09;模型4.TCP/IP&#xff08;参考&#xff09;模型与OSI七层模型有什么异同&#xff1f; 二、自底向上的网络分层 1. 物理层2…

6.7 Windows驱动开发:内核枚举LoadImage映像回调

在笔者之前的文章《内核特征码搜索函数封装》中我们封装实现了特征码定位功能&#xff0c;本章将继续使用该功能&#xff0c;本次我们需要枚举内核LoadImage映像回调&#xff0c;在Win64环境下我们可以设置一个LoadImage映像加载通告回调&#xff0c;当有新驱动或者DLL被加载时…

光伏测算工具能测量哪些数据?

光伏测算工具在光伏电站的设计和规划过程中起着至关重要的作用。它们可以测量并分析一系列关键数据&#xff0c;以确保光伏电站的顺利建设和高效运营。本文将详细介绍光伏测算工具能测量的主要数据。 一、太阳能资源评估 光伏测算工具可以对场地的太阳能资源进行评估。这包括测…

C++模版

文章目录 C模版1、泛型编程2、函数模版2.1、函数模版概念2.2、函数模版格式2.3、函数模版原理2.4、函数模版的实例化2.5、模板参数的匹配原则 3、类模版3.1、类模版概念3.2、类模版格式3.3、类模板的实例化 C模版 1、泛型编程 泛型编程&#xff08;Generic Programming&#x…

html个人简历网页版源码

文章目录 1.个人简历1.1 简历风格1 - 纯净版1.2 简历风格2 - 蓝色版1.2 简历风格3 - 粉色心动版 源码目录结构源码下载 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/details/134752070 html个人简历网页版源码&#xff0c;好看…

SpringBoot整合JavaMail

SpringBoot整合JavaMail发一个简单邮件 文章目录 SpringBoot整合JavaMail发一个简单邮件导入坐标配置写客户端 SpringBoot整合JavaMail发多部件邮件 导入坐标 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starte…

SEO插件,免费的SEO插件大全

SEO插件的作用 让我们来谈谈SEO插件的作用。SEO插件是一种能够在网站建设和管理过程中&#xff0c;提供全方位、智能化SEO服务的工具。它们通常嵌入在网站后台&#xff0c;为站长提供了诸如关键词优化、页面结构调整、外链管理等一系列强大功能&#xff0c;帮助站长更好地适应…

【数电笔记】最小项(逻辑函数的表示方法及其转换)

目录 说明&#xff1a; 逻辑函数的建立 1. 分析逻辑问题&#xff0c;建立逻辑函数的真值表 2. 根据真值表写出逻辑式 3. 画逻辑图 逻辑函数的表示 1. 逻辑表达式的常见表示形式与转换 2. 逻辑函数的标准表达式 &#xff08;1&#xff09;最小项的定义 &#xff08;2&am…

一篇短文让你彻底理解什么是逻辑门电路

一、门电路概述 门电路&#xff1a;实现基本运算、复合运算的单元电路&#xff0c;如与门、与非门、或门… 注意&#xff1a;门电路中以高/低电平表示逻辑状态的1/0 正逻辑与负逻辑&#xff1a; 正逻辑&#xff1a;高电平表示1、低电平表示0 负逻辑&#xff1a;高电平表示0、低…