Hi Patrick. Yes, MongoClient is thread-safe. Create one MongoClient for your whole process and share it among all your threads. Database and Collection are thread-safe, too, so you can share them among threads as well, but it doesn't matter if you create a Database and Collection per thread or not: the important thing is to make only one MongoClient.
(By the way, interpreter threads *are* OS threads in Python. They can't execute Python concurrently, due to the Global Interpreter Lock, but they are nevertheless real threads.)