Это нормальный подход, можно просто Promise.all
В драйвере/библиотеке есть пул соединений, и он влияет на то как оно все будет работать, если у вас пул на 5 соединений, то даже если вы запустите 100 запросов параллельно, в реальности будут выполняться первые 5, потом еще 5, потом еще 5.
Если вы хотите прямо в один запрос завернуть что-то большее чем обычный find, то возможно вам будут полезны агрегаты
https://docs.mongodb.com/manual/aggregation/