Creating async CRUD transactions using Motor
Motor is an asynchronous driver that relies on the AsyncIO environment of the FastAPI. It wraps PyMongo to produce non-blocking and coroutine-based classes and methods needed to create asynchronous repository layers. It is almost like PyMongo when it comes to most of the requirements except for the database connectivity and repository implementation.
But before we proceed, we need to install the motor
extension using the following pip
command:
pip install motor
Setting up the database connectivity
Using the AsyncIO
platform of the FastAPI, the Motor driver opens a connection to the MongoDB database through its AsyncIOMotorClient
class. When instantiated, the default connection credential is always localhost
at port 27017
. Alternatively, we can specify the new details in str
format through its constructor. The following script shows how to create a global AsyncIOMotorClient
reference with the specified database credentials: