Which is the Mongo-way of storing filters related to documents?

My bad, hope this clears the waters a bit:

I’ve got a collection named “bookings”, which contain different bookings performed by users:

{
    _id: ObjectId("..."),
    timestamp: 123456789,
    hotel_id: "123456789",
    city: "paris",
    country: "france",
    device: "web",
    filters: [
       "city=paris",
       "country=france",
       "device=web",
       "city=paris&country=france",
       "city=paris&device=web",
       "country=france&device=web",
       ...
    ],
    booking_ref: "ABCD"
}

What I mean with dynamic filters is the following: here I’ve got city, country and device as the fields I want to filter. The problem is, when trying to perform a find I want to be able to search for any filter, in any combination.

AFAIK for indexes to properly work the ordering of the fields must be strict, that is, if I added an index for country, city, device, I will be able to do this: find({country: france}), but not this find({city: paris}) or find({city: paris, device: web}) since it won’t use the index.

So, what I did was to put all possible filter combinations in that filters list so I convert the input filters into a & separated string and look into all lists to check if its there, having filters as part of the index.

If I want to search for country = france, city = paris, I will convert that into country=france&city=paris.

And this can’t be optimal by any means, at least when filter cardinality explodes in size it’s not manageable and times could be faster for sure.

Which would be the ideal way to search for any filter combination? And the proper way to store them in Mongo?

Also, with ATM with a my_collection I was thinking out loud. All documents from all filters are in the same collection at the moment, would it be something feasible to split those by collection? Like bookings_by_country, bookings_by_city, and so on.