我的网站上有多个过滤器选项。 1.游戏名称 2.游戏类型 3.研讨会价格 4. workshop_country, 5. workshop_state, 6. workshop_city
我想要一个$ and过滤器方法,像这样过滤。
如果我仅选择游戏名称,则它应筛选出游戏名称符合条件的所有文档。 如果我选择了游戏名称和游戏类型,那么它应该过滤游戏名称和游戏类型符合条件的所有文档。
router.get('/:page',(req,res)=>{
let query_seminar_gamename=req.query.seminar_gamename;
console.log(query_seminar_gamename);
let query_seminar_gametype=req.query.seminar_gametype;
let query_seminar_price=req.query.seminar_price;
query_seminar_price=Number(query_seminar_price);
let query_seminar_city = req.query.seminar_city;
let query_seminar_country=req.query.seminar_country;
let perPage=9;
let page=req.params.page || 1;
if (query_seminar_gamename!=null || query_seminar_gametype!=null || query_seminar_country != null) {
SeminarFetch.find({"seminar_gamename":query_seminar_gamename,"seminar_gametype":query_seminar_gametype})
.skip((perPage*page)-perPage)
.limit(perPage)
.sort({"seminar_price":query_seminar_price,"_id":-1})
.then(seminar=>{
SeminarGamenameConf.find().then(gameName_list=>{
SeminarGametypeConf.find().then(gameType_list=>{
SeminarFetch.count({"seminar_gamename":query_seminar_gamename,"seminar_gametype":query_seminar_gametype,"seminar_country":query_seminar_country,"seminar_state":req.body.seminar_state,"seminar_city":req.body.seminar_city},(err,count)=>{
console.log("No of docs: ",count);
}).exec(function(err,count){
if (err) return err
res.render('seminar',{
seminar:seminar,
current:page,
pages:Math.ceil(count / perPage),
seminarCount:count,
gameName_list:gameName_list,
gameType_list:gameType_list,
country: countries
});
})
})
})
})
}
})
现在,如果选择了游戏名称和游戏类型,而不是选择国家/地区作为过滤条件,则应根据游戏名称和游戏类型返回所有文档