Из документов Pymongo: «PyMongo является поточно-ориентированным и даже обеспечивает встроенный пул соединений для многопоточных приложений».
Слово «асинхронный» в вашей ситуации можно перевести как «противоречивые» требования к вашему приложению.
Выражения типа "x + = 1" никогда не будут последовательными в вашем приложении. Если вы можете себе это позволить, проблем нет. Если у вас есть «критические» операции, вы должны каким-то образом реализовать некоторые блокировки для синхронизации.
Что касается максимальных соединений, я не знаю точных чисел, поэтому протестируйте и продолжайте.
Также взгляните на Redis и этот пример , если требуются скорость и эффективность памяти. Из некоторых тестов, которые я сделал, драйвер Python Redis по крайней мере в 2 раза быстрее, чем pymongo, для чтения / записи.