Aggregating by a given item in array

It's possible, but you'll need to use the nested datatypes instead. Regular json objects (like your example) are "flattened" internally and lose their relationship. E.g. internally that data will be stored as:

{
  countries.country: ["czechia","england"],
  countries.name: ["novak","jonson"]
}

The nested data type internally uses a different storage mechanism to keep the relations between items in an object, so that you can run queries/aggregrations like you requested.