Performant Mongo Query to get users with specific criteria

I have mongo record that looks like this

{
  "status": "LIKED", // or NA
  "signedUpAt": "mongo date time", //user signed up time
  "lastSeenAt": "mongo date time", // last active time
  ...other_fields
}

I initially filter the data using some filters, at the end i need to return 10 results with following rules

  1. Half of the user’s with status=“LIKED” (rounded up) maximum of 5 random records (If any of those users have signed up within the last 24 hrs prioritise those)

  2. randomly selected Users who signed up < 72 hrs ago, maximum of 3 records

  3. randomly selected Users who logged in within the past 7 days

  4. randomly selected Users who logged in within the past 8 to 15 days(first 3 conditions still dint return 10 results)

  5. randomly selected Users who logged in within the past 16 to 30 days(first 4 conditions still dint return 10 results)

  6. Any other random user(first 5 conditions still dint return 10 results)

I can think of using mongo facets to return 10 results from each of the above category and then in my code select required records as per the rules, but i want to understand is there a better and more performant way to achieve this, because as everyone over stack overflow says my database has huge set of records :).