SDK数据库 Command查询逻辑操作符


本文整理自网络,侵删。

Command.and(expressions: any[]): Command

支持端:小程序 , 云函数 , Web

查询操作符,用于表示逻辑 "与" 的关系,表示需同时满足多个查询筛选条件

参数

expressions: any[]

返回值

Command

使用说明

and 有两种使用情况:

1. 用在根查询条件

此时需传入多个查询条件,表示需同时满足提供的多个完整查询条件

const _ = db.command
db.collection('todo').where(_.and([
  {
    progress: _.gt(50)
  },
  {
    tags: 'cloud'
  }
])).get()

但以上用 and 组成的查询条件是不必要的,因为传入的对象的各字段隐式组成了 “与” 的关系,上述条件等价于下方更简洁的写法:

const _ = db.command
db.collection('todo').where({
  progress: _.gt(50),
  tags: 'cloud'
}).get()

通常需要显示使用 and 是用在有跨字段或操作的时候,如以下表示 “progress 字段大于 50 或 tags 字段等于 cloud 或 tags 数组字段(如果 tags 是数组)中含有 cloud”:

const _ = db.command
db.collection('todo').where(_.and([
  _.or({
    progress: _.gt(50)
  }),
  _.or({
    tags: 'cloud'
  })
])).get()

2. 用在字段查询条件

需传入多个查询操作符或常量,表示字段需满足或匹配给定的条件。

如以下用前置写法的方式表示 "progress 字段值大于 50 且小于 100"

const _ = db.command
db.collection('todo').where({
  progress: _.and(_.gt(50), _.lt(100))
})

还可以用后置写法的方式表示同样的条件:

const _ = db.command
db.collection('todo').where({
  progress: _.gt(50).and(_.lt(100))
})

注意 Command 默认也可以直接链式调用其他 Command,默认表示多个 Command 的与操作,因此上述代码还可以精简为:

const _ = db.command
db.collection('todo').where({
  progress: _.gt(50).lt(100)
})

调用风格

方法接收两种传参方式,一是传入一个数组参数,二是传入多个参数,效果一样。

// 传入数组
function and(expressions: Expression[]): Command
// 传入多参数
function and(...expressions: Expression[]): Command



Command.or(expressions: any[]): Command

支持端:小程序 , 云函数 , Web

查询操作符,用于表示逻辑 "或" 的关系,表示需同时满足多个查询筛选条件。或指令有两种用法,一是可以进行字段值的 “或” 操作,二是也可以进行跨字段的 “或” 操作。

参数

expressions: any[]

返回值

Command

字段值的或操作

字段值的 “或” 操作指的是指定一个字段值为多个值之一即可。

如筛选出进度大于 80 或小于 20 的 todo:

流式写法:

const _ = db.command
db.collection('todo').where({
  progress: _.gt(80).or(_.lt(20))
})

前置写法:

const _ = db.command
db.collection('todo').where({
  progress: _.or(_.gt(80), _.lt(20))
})

前置写法也可接收一个数组:

const _ = db.command
db.collection('todo').where({
  progress: _.or([_.gt(80), _.lt(20)])
})

跨字段的或操作

跨字段的 “或” 操作指条件 “或”,相当于可以传入多个 where 语句,满足其中一个即可。

阅读剩余部分

相关阅读 >>

微信小程序api 绘图getactions(不推荐使用)

微信小程序云开发 支付方式

微信小程序云开发初始化方法init

微信小程序api 背景音频-backgroundaudiomanager实例

微信小程序api 绘图-绘制画布 drawcanvas (不推荐使用)

微信小程序 获取小程序码

微信小程序api 实时音视频-liveplayercontext实例

微信小程序api nfc-发送nfc消息

微信小程序api 接入指引

微信小程序 小程序使用getalldelivery

更多相关阅读请进入《微信小程序》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...