前言

在利用小程序的云函数进行开发时候,有些时候查询条件不是唯一的,比如我们需要查询成绩在大于80分或者小于20分的同学的信息,这时候就需要利用or来查询了。
感觉还是挺简单的,但是这里我还是踩了一点的坑。

官方文档的or查询

//这句话非常重要容易忘记
const _ = db.command

// 从记录todo中选择progress大于80或者小于20的信息
db.collection('todo').where({
  progress: _.or(_.gt(80), _.lt(20))
})

MY or查询

在写聊天小程序的时候,需要符合的key值有两个,key_1和key_2,需求是查找出key=key_1或者key=key_2 的记录,从官方文档上面看,我们可以这样写:

  
   db.collection('chat').where({
          key: _.or(_.eq(key_1), _.eq(key_2))  // key=key_1 or key=key_2
        }).get().then(res => {
          console.log(res.data) // 打印数据
        })

注意:
像下面这样写,会得不出结果,海轰也不知道为什么?
感觉是版本更新了,这种写法好像不行了?
但是在其他地方这种写法(不用or),却可以正确得出答案!
微信有点迷啊 O(∩_∩)O哈哈~

 db.collection('chat').where({
          key: _.or(_.eq(key_1), _.eq(key_2))  // key=key_1 or key=key_2
        }).get({
        success:function(res){
        console.log(res.data)
        },
        fail:function(error){
		console.log(error)
		}
        })

更多推荐

微信小程序--云开发之查询逻辑符or的使用