在大佬的基础上修改一下,或许可以设conditon为全部搜索条件,然后如果某项为空,delete那个搜索条件?
【已解决】.where 不支持表达式,那么如何避免外围写一堆if else?//数据库 user { uid: 666, name: "柚子", lv: 10, group: 888 }, { ...... } [图片] // GetUserInfo.js GetUI(o){ let uid = Number(o.uid) || [] // 666 let name = o.name || [] // '柚子' let lv = Number(o.lv) || [] // 空 let group = o.group || [] // 空 // group & lv 为空时 if (group == '' && lv == '') { db.collection('user') .where({ uid: _.in(uid), // 筛id name: _.in(name) // 筛名字 }) .get() .then(res => { console.log("返回:", res.data) }) .catch(err => { console.log("错误:", err); }) } else if (group != '' && lv == '') { //group不为空 & lv 为空时 db.collection('user') .where({ uid: _.in(uid), // 筛id name: _.in(name), // 筛名 group: _.in(group) // 筛组 }) .get() .then(res => { console.log("返回:", res.data) }) .catch(err => { console.log("错误:", err); }) } else if (group == '' && lv != '') { //group为空 & lv 不为空时 db.collection('user') .where({ uid: _.in(uid), // 筛id name: _.in(name), // 筛名 lv: _.in(lv) // 筛级 }) .get() .then(res => { console.log("返回:", res.data) }) .catch(err => { console.log("错误:", err); }) } } .where{} 参数值为空时,查询不到数据~ https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/database/dbscript.html 文档说不支持各种表达式,....... 我不想写这么多if else...... 有什么办法能不写N个if else??? 感谢~ [图片]
2022-05-22