收藏
回答

云开发查询or的用法

框架类型 问题类型 终端类型 AppID 基础库版本
小程序 需求 工具 wx8df00821371cf936 2.7.1

- 需求的场景描述(希望解决的问题)

官方文档的例子:

const cloud = require('wx-server-sdk')cloud.init()const db = cloud.database()const _ = db.command
exports.main = async (event, context) => {
  try {
    return await db.collection('todo').where({
      memory: _.or(_.gt(80), _.lt(20))
    }).get()
  } catch(e) {
    console.error(e)
  }}

- 希望提供的能力


如果我要查询等于80或者20的值应该怎么写?可以像下面这样吗?请了解的朋友指点

const cloud = require('wx-server-sdk')cloud.init()const db = cloud.database()const _ = db.command
exports.main = async (event, context) => {
  try {
    return await db.collection('todo').where({
      memory: _.or([80, 20])
    }).get()
  } catch(e) {
    console.error(e)
  }}


回答关注问题邀请回答
收藏

1 个回答

  • \
    \
    2019-06-16

    memory: _.or(_.eq(80), _.eq(20))试试

    eq是等于

    2019-06-16
    有用
    回复 5
    • 官人
      官人
      2019-06-17

      明白了,谢谢


      如果那个80,20的数组是变化的呢,比如是是通过其他查询得到的一个数组,长度可能不是2个元素呢,这种怎么写?

      2019-06-17
      回复
    • \
      \
      2019-06-17回复官人

      这个就要自己拼接了,比如:

      let a = 1;let b = 1;let c = 1;

      let str = '_.or(_.lt('+a+'), _.eq('+b+'),_.gt('+c+'))';

      db.collection('todo').where({      memory:str }).get()

      差不多就这样

      2019-06-17
      回复
    • 官人
      官人
      2019-06-18回复\

      谢谢指导。

      2019-06-18
      回复
    • \
      \
      2019-06-18回复官人

      谈不上指导,就是经验,仅供参考

      2019-06-18
      回复
    • 赣巨人
      赣巨人
      2019-12-12回复\
      有个场景是这样:要查询职位是【经理】或 底薪大于 【5000】的员工信息,这个条件语句怎么组织,非常感谢!
      2019-12-12
      回复
登录 后发表内容