Example #1
0
 def delete_app_data(self, db):
     db = validate_db_name(db)
     db = self.client[db]
     collections = db.collection_names(include_system_collections=False)
     for collection in collections:
         col = db[collection]
         col.remove()
Example #2
0
 def delete_object(self, db, klass, id):
     db = validate_db_name(db)
     db = self.client[db]
     collection = db[klass]
     collection.remove(ObjectId(id))
     if not collection.count():
         db.drop_collection(klass)
Example #3
0
 def get_classes(self, db):
     db = validate_db_name(db)
     db = self.client[db]
     collections = db.collection_names(include_system_collections=False)
     app_classes = []
     for coll in collections:
         doc = db[coll].find_one()
         if doc: app_classes.append(coll)
     return app_classes
Example #4
0
 def update_object(self, db, klass, id, obj):
     db = validate_db_name(db)
     db = self.client[db]
     collection = db[klass]
     updates = obj.keys()
     if ("_id" in updates):
         raise Exception("Invalid object. _id is a reserved field")
     collection.update({"_id": ObjectId(id)},
                       {"$set": obj})               # todo: set multi = true??
Example #5
0
 def get_object(self, db, klass, id):
     db = validate_db_name(db)
     db = self.client[db]
     collection = db[klass]
     query = {"_id": ObjectId(id)}
     obj = collection.find_one( query)
     if obj:
         objid = obj["_id"]
         obj["_id"] = str(objid)
     return obj
Example #6
0
 def add_multiple_objects(self, db, klass, objects):
     db = validate_db_name(db)
     db = self.client[db]
     collection = db[klass]
     for obj in objects:
         keys = obj.keys()
         if ("_id" in keys):
             raise Exception("Invalid object. _id is a reserved field")
     ids = collection.insert(objects)
     return ids
Example #7
0
 def add_object(self, db, klass, obj):
     db = validate_db_name(db)
     db = self.client[db]
     collection = db[klass]
     keys = obj.keys()
     if ("_id" in keys):
         raise Exception("Invalid object. _id is a reserved field")
     
     objid = collection.insert(obj)
     return objid
Example #8
0
 def add_object(self, db_name, klass, obj):
     db_name = validate_db_name(db_name)
     db = self.client[db_name]
     collection = db[klass]
     keys = obj.keys()
     self.schema_handler.valid_schema(db_name, klass, obj)
     if ("_id" in keys):
         raise InvalidObjectError("Invalid object. _id is a reserved field")
     
     objid = collection.insert(obj)
     return objid
Example #9
0
    def get_class(self, db, klass, query, sort_key=None, direction = None):
        db = validate_db_name(db)
        try:
            if direction:
                assert(direction == pymongo.ASCENDING or direction == pymongo.DESCENDING)
        except AssertionError:
            raise Exception("valid values for order are 1 & -1")
        
        db = self.client[db]
        collection = db[klass]
        cursor = collection.find(query)      
        if sort_key:
            cursor = cursor.sort(sort_key, direction)
            
        res = [doc for doc in cursor]

        for doc in res:
            objid = doc["_id"]
            doc["_id"] = str(objid)
        return res
Example #10
0
 def delete_object(self, db, klass, id):
     db = validate_db_name(db)
     db = self.client[db]
     collection = db[klass]
     collection.remove(ObjectId(id))
Example #11
0
 def delete_class(self, db, klass):
     db = validate_db_name(db)
     db = self.client[db]
     if klass in db.collection_names():
         collection = db[klass]
         collection.remove()
Example #12
0
 def delete_app_data(self, db):
     db = validate_db_name(db)
     self.client.drop_database(db)
Example #13
0
 def delete_class(self, db_name, klass):
     db_name = validate_db_name(db_name)
     db = self.client[db_name]
     if klass in db.collection_names():
         db.drop_collection(klass)
         self.schema_handler.remove_schema(db_name, klass)