Mongoose filtering (search) on multiple fields [duplicate] Mongoose filtering (search) on multiple fields [duplicate] mongodb mongodb

Mongoose filtering (search) on multiple fields [duplicate]


You need to create query object by checking which parameter present or not

var queryCond = {}if(query.name){   queryCond.name={$regex:query.name,$options:"i"};}if(query.city){   queryCond.city=query.city;}if(query.type){   queryCond.type=query.type;}Location.find(queryCond);

In es6 you can do this nicely

let {type,city,name} = query;queryCond = { ...(type && {type}), ...(city && {city}), ...(name && {name:/regex here/}),}