MongoDBConnection
provide the mongo_client
on every call to the get
method. And will close
the connection when exiting the "with"
statement.
Example
config.yaml
core_lib:
mongodb:
_target_: core_lib.connection.mongodb_connection_registry.MongoDBConnectionRegistry
config:
url:
protocol: mongodb+srv
host: server.example.com
port: 27017
username: ${oc.env:MONGO_USERNAME}
password: ${oc.env:MONGO_PASSWORD}
your_core_lib.py
from core_lib.connection.mongodb_connection_registry import MongoDBConnectionRegistry
class YourCoreLib(CoreLib):
def __init__(self, conf: DictConfig):
self.config = conf.core_lib.mongodb
mongodb = MongoDBConnectionRegistry(self.config)
self.user = UserDataAccess(mongodb)
user_data_access.py
class UserDataAccess(DataAccess):
def __init__(self, db: MongoDBConnectionRegistry):
self.mongodb = db
def get(self, user_id: int) -> pymongo.cursor.Cursor:
with self.mongodb.get() as client:
return client.db.collection.find_one({'_id': user_id})
def create(self, data: dict) -> pymongo.results.InsertOneResult:
with self.mongodb.get() as client:
return client.db.collection.insert_one(data)
def update(self, user_id: int, data: dict) -> pymongo.results.UpdateResult:
with self.mongodb.get() as client:
return client.db.collection.update_one({'_id': user_id}, {'$set': data})
def delete(self, user_id: int) -> pymongo.results.DeleteResult:
with self.mongodb.get() as client:
return client.db.collection.delete_one({'id': user_id})
MongoDBConnection
core_lib.connection.mongodb_connection.MongoDBConnection [source]
This class gets the mongo_client
on initialization.
class MongoDBConnection(Connection):
def __init__(self, mongo_client: MongoClient):
self.mongo_client = mongo_client
Arguments
mongo_client
(MongoClient)
: Themongo_client
provided fromMongoDBConnectionRegistry
.
MongoDBConnectionRegistry
core_lib.connection.mongodb_connection_registry.MongoDBConnectionRegistry [source]
This class is responsible for initializing the mongo_client
(MongoClient) from pymongo and passing mongo_client
on to the MongoDBConnection
in the get()
method.
Functions
__init__()
core_lib.connection.mongodb_connection_registry.MongoDBConnectionRegistry.__init__() [source]
Responsible for initializing mongo_client
from the configuration
def __init__(self, config: DictConfig):
Arguments
config
(DictConfig)
: MongoDB section config fromCore-Lib's
config.
client()
core_lib.connection.mongodb_connection_registry.MongoDBConnectionRegistry.client() [source]
Returns the MongoClient from pymongo.
def client(self) -> MongoClient:
Returns
(MongoClient)
: Returns the MongoClient from pymongo
get()
core_lib.connection.mongodb_connection_registry.MongoDBConnectionRegistry.get() [source]
Returns the MongoDBConnection
instance and passes mongo_client
as an argument to it.
def get(self, *args, **kwargs) -> MongoDBConnection:
Arguments
*args, **kwargs
: The args and kwargs of the function.
Returns
(MongoDBConnection)
: Returns the MongoDBConnection
instance.