Find() query with PHP variables as optional filters

I’m trying to make a MongoDB query based on 3 optional filters taken from 3 fields.

Since these parameters are optional, one of the filters may not be set. So I can’t make a fixed query like this:

$result = $collection->find([
            "Vara" => "Option1",
            "Assunto" => "Option2",
            "Resultado" => "Option3"
])

I had the idea to store the field entries into a PHP variable and just insert it into the find function.

When I get the field content via POST, I parse it into a variable like this:
$filter1 = ' "Vara" => " '.$_POST['field1'].' " '; //e.g. user wrote 'Option1' in the field.

If the user didn’t specify a filter in the field the variable is set as empty:
$filter2 = '';

So when I concatenate all the variables I get only the set filters:
$query = $filter1 . $filter2; //Prints: "Vara" => "Option1",

Then I would do this:

$result = $collection->find([
              $query
           ])

But this didn’t work. I checked and $query is correct, I get no errors.

I know a possible solution would be using $regex. If the user didn’t set a filter I change it to " .* "

$result = $collection->find([
  "Vara" => ['$regex' => " $field1 "],
  "Assunto" => ['$regex' => " $field2 "],
  "Resultado" => ['$regex' => " $field3 "]
])

But is there a better solution than doing $regex => .* ?