Това е така, защото начинът, по който сте написали заявката, означава, че трябва да съответства на дадения regex
заявка с всички предадени параметри като и (&&) операция. Това, което можете да направите, е да направите и или(||) операция с всички задължителни полета.
Ето примерния код, който можете да опитате.
db.users.find({
"$or": [
{ name: { '$regex': query, '$options': 'i' } },
{ ref: { '$regex': query, '$options': 'i' } }
]
}).then((users) => {
res.json(users);
});