I have a following situation. I need to build a mongoose query, based on certain arguments if present.
I.e. if object like this is passed
{
playe
In case someone encounters same question, here's how I solved it:
var query = {
player: 'player'
};
Entry.find({
player: query.player,
action: (query.action) ? query.action:/.*/
}).
exec(function(err, res){
console.log(res);
});
With ES6, you can do this with a splat & ternary like this:
Entry.find({
player: obj.player,
...obj.action ? { action: obj.action } : {}
})
.exec(function(err, res){
console.log(res);
});
Build up your query object programmatically:
var query = {
player: 'player'
};
if (obj.action) {
query.action = obj.action;
}
Entry.find(query).exec(function(err, res){
console.log(res);
});