前言
在利用小程序的云函数进行开发时候,有些时候查询条件不是唯一的,比如我们需要查询成绩在大于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)
}
})