比如传入了几个可选参数,当参数存在时再进行相关的where查询,不存在就跳过,试验过以下方法是无效的:
const collection=db.collection( 'collection' ) var test=collection.where(条件一) if (条件二符合){ test.where(条件二) } ... if (条件N符合){ test.where(条件N) } test.get({ success:(res)=>{ console.log(res) } }) |
运行结果是,尽管后续根据更多的条件进行了查询,最终也只有条件一生效了。
那么有什么其他办法吗
谢谢
学会变通
var wh = {field:'aaa'} // 默认条件,没有默认即为空 {} 即可
if(xx) wh.field1 = xxxx
if(xx) wh.field2 = xxxx
....
JSON.stringif(wh) != '{}' ? db.collection().where(wh).get() : void 0