How do you decide the number of connections in your pools?

I have a quick question.

In my apps, I use mongoose as a drive but the problem would be the same with mongo driver.

I have a cluster having 4 databases. Most of my apps can have a connection pool opened with each database. I recently started to log the number of connections opened in my pools: 5. The minimum set in the options I use to create the mongoose instance is 3.

Now I have reach 80% of the limit of the number of connections on my mongo cluster. Before paying more, I’m sure there is a way to optimse this number of connections.

How would you do that?
How do you choose the minimum/maximum number of connections in a pool?