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

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的这个用法。

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

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

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

相关文章

28.线段树与树状数组基础

一、线段树 1.区间问题 线段树是一种在算法竞赛中常用来维护区间的数据结构。它思想非常简单,就是借助二叉树的结构进行分治,但它的功能却非常强大,因此在很多类型的题目中都有它的变种,很多题目都需要以线段树为基础进行发展。…

SpringBoot结合easyexcel处理Excel文件

原创/朱季谦 假如有这样一个需求,每天需要读取以下表头的Excel文件,统计文件里击中黑名单的比例,该文件is_blacklist列的1表示击中了黑名单,0表示未击中黑名单。 基于该需求,可以在定时任务通过easyexcel工具进行处理…

通过adb命令查看当前界面的Activity

1、先进入shell 2、输入如下命令 dumpsys activity | grep "mFoc"执行效果如下: 从上图可以看到当前正在运行app的进程名称和当前显示的Activity完整路径类名。

Spring AOP 代码案例

目录 AOP组成 通知的具体方法类型 引入Spring AOP依赖 定义AOP层 UserController Postman测试 AOP工作流程 AOP组成 切面 : 切⾯(Aspect)由切点(Pointcut)和通知(Advice)组成,它既包含了…

第九节HarmonyOS 常用基础组件-Text

一、组件介绍 组件(Component)是界面搭建与显示的最小单位,HarmonyOS ArkUI声名式为开发者提供了丰富多样的UI组件,我们可以使用这些组件轻松的编写出更加丰富、漂亮的界面。 组件根据功能可以分为以下五大类:基础组件…

DynamicDataSource

DynamicDataSource 多数据源,读写分离,主从数据库

单片机实验(三)

前言 实验一:利用定时器T1的中断控制P1.7引脚输出音频信号,启动蜂鸣器发出一段熟悉的与众不同的具有10个音节的音乐音频。 实验二:使用定时器/计数器来实现一个LCD显示年、月、日、星期 、时、分、秒的电子表,要求时和分可以方便…

震坤行:数字驱动食品农副行业采购的新兴趋势与实践

震坤行:数字驱动食品农副行业采购的新兴趋势与实践 近年来消费者对于营养价值和健康的追求日益凸显,促使各类有机食品、低糖低脂食品、素食等健康食品受到热烈追捧。同时,以往单一的产品也被各家企业“卷”出了个性化,光是卖水&a…

vue实现数字千分位格式化 如6,383,993,037,937.463

1.封装文件:numberToCurrency.js /**实现数字千分位格式化 如6,383,993,037,937.463 */ export function numberToCurrencyNo(value) {if (!value) return 0// 获取整数部分const intPart Math.trunc(value)// 整数部分处理,增加,const intPartFormat …

WSL2+tensorflow-gpu 2.3.0 C++ 源码编译

wsl2已有gcc 版本为9.4.0,但tensorflow2.3.0需对应gcc7.3.1 tensorflow与cuda cudnn python bazel gcc版本对应关系 故需下载一个低版本的gcc,但同时还想保留较高版本的gcc,那么参考文章:深度学习环境搭建(二): Ubuntu不同版本g…

附录A 指令集基本原理

1. 引言 本书主要关注指令集体系结构4个主题: 1. 提出对指令集进行分类的方法,并对各种方法的优缺点进行定性评估; 2. 提出并分析一些在很大程度上独立于特定指令集的指令集评估数据。 3. 讨论语言与编译器议题以及…

微软 Power Platform 零基础 Power Pages 网页搭建教程学习实践(一)

微软 Power Platform 零基础 Power Pages 网页搭建教程学习实践 Power Pages 网页搭建 微软 Power Platform 零基础 Power Pages 网页搭建教程学习实践1、Power Pages 介绍2、开始创建一个站点3、选择一个合适的模板4、编辑我们的模板5、面向专业开发人员的高级开发功能6、预览…