Module gundb.backends.mongo

Source code
from collections import defaultdict
from .backend import BackendMixin

class cuteobj:
    def __getattr__(self, attr):
        if attr in dir(self):
            return getattr(self, attr)
        else:
            setattr(self, attr, cuteobj())

    def __str__(self):
        return "cuteobj: {} ".format(str(self.__dict__))

class Mongo(BackendMixin):
    def __init__(self, connstring='mongodb://localhost:27017'):
        from pymongo import MongoClient
        self.cl = MongoClient(connstring)
        self.mongodb = self.cl.test_database
        self.db = defaultdict(lambda: defaultdict(lambda: defaultdict()))

    def get_object_by_id(self, obj_id, schema):
        col = self.mongodb[schema]
        obj = col.find_one({"id": obj_id})
        if not obj:
            col.insert_one({"id":obj_id})
            obj = col.find_one({"id": obj_id})
        return obj

    def set_object_attr(self, obj, attr, val):
        obj[attr] = val
        return obj

    def save_object(self, obj, obj_id, schema=None):
        col = self.mongodb[schema]
        col.find_one_and_update({"id":obj_id}, {"$set": obj}, upsert=True)

    def __setitem__(self, k, v):
        self.db[k] = v

    def __getitem__(self, k):
        return self.db[k]

    def list(self):
        return self.db.items()

Classes

class Mongo (connstring='mongodb://localhost:27017')
Source code
class Mongo(BackendMixin):
    def __init__(self, connstring='mongodb://localhost:27017'):
        from pymongo import MongoClient
        self.cl = MongoClient(connstring)
        self.mongodb = self.cl.test_database
        self.db = defaultdict(lambda: defaultdict(lambda: defaultdict()))

    def get_object_by_id(self, obj_id, schema):
        col = self.mongodb[schema]
        obj = col.find_one({"id": obj_id})
        if not obj:
            col.insert_one({"id":obj_id})
            obj = col.find_one({"id": obj_id})
        return obj

    def set_object_attr(self, obj, attr, val):
        obj[attr] = val
        return obj

    def save_object(self, obj, obj_id, schema=None):
        col = self.mongodb[schema]
        col.find_one_and_update({"id":obj_id}, {"$set": obj}, upsert=True)

    def __setitem__(self, k, v):
        self.db[k] = v

    def __getitem__(self, k):
        return self.db[k]

    def list(self):
        return self.db.items()

Ancestors

Methods

def get_object_by_id(self, obj_id, schema)
Source code
def get_object_by_id(self, obj_id, schema):
    col = self.mongodb[schema]
    obj = col.find_one({"id": obj_id})
    if not obj:
        col.insert_one({"id":obj_id})
        obj = col.find_one({"id": obj_id})
    return obj
def list(self)
Source code
def list(self):
    return self.db.items()
def save_object(self, obj, obj_id, schema=None)
Source code
def save_object(self, obj, obj_id, schema=None):
    col = self.mongodb[schema]
    col.find_one_and_update({"id":obj_id}, {"$set": obj}, upsert=True)
def set_object_attr(self, obj, attr, val)
Source code
def set_object_attr(self, obj, attr, val):
    obj[attr] = val
    return obj

Inherited members

class cuteobj (*args, **kwargs)
Source code
class cuteobj:
    def __getattr__(self, attr):
        if attr in dir(self):
            return getattr(self, attr)
        else:
            setattr(self, attr, cuteobj())

    def __str__(self):
        return "cuteobj: {} ".format(str(self.__dict__))