楼主,我也遇到过这样的问题,你把where中的查询语句改了一下就好了 where( _.and([ _.or([ { A: _.event.cloud_serach, }, { B: _.event.cloud_serach, }, { C: _.event.cloud_serach, }, { D: _.event.cloud_serach, }, { E: event.cloud_fenlei, }, ]) )
云函数中where使用多重查询的问题,语句如何编写?如我的数据库里有字段A,B,C,D,E 5个字段,我从本地上传2个参数,参数1是:cloud_serach;参数2是cloud_fenlei 想要实现的功能是,参数1 cloud_serach 与字段A,B,C,D中任一字段匹配就可以,相当于or,同时满足条件是:参数2 cloud_fenlei与E字段匹配,相当于and, 请问这个语句怎么写呢,我的如下写法,每次查询出来的都是数据库里所有的数据, const db = cloud.database() var _ = db.command console.log('event.serach,cloud_fenlei',event.cloud_serach,event.cloud_fenlei,) let count = await db.collection('abc') .where( _.or([ { A: _.event.cloud_serach, }, { B: _.event.cloud_serach, }, { C: _.event.cloud_serach, }, { D: _.event.cloud_serach, }, _.and([ { E: event.cloud_fenlei, }, ]) ]) ) .count() count = count.total console.log('count',count) let all = [] let list=[] for (let i = 0; i < count; i += 100) { //自己设置每次获取数据的量 list = await db.collection('abc').skip(i).get() all = all.concat(list.data); } return all;
2022-07-26