Ensure the collection identified by this document class exists, creating it if not, also creating indexes.
		
		**Warning:** enabling the `recreate` option **will drop the collection, erasing all data within**.
		
		http://api.mongodb.com/python/current/api/pymongo/database.html#pymongo.database.Database.create_collection

def create_collection(cls, target=None, drop=False, indexes=True):
		"""Ensure the collection identified by this document class exists, creating it if not, also creating indexes.
		
		**Warning:** enabling the `recreate` option **will drop the collection, erasing all data within**.
		
		http://api.mongodb.com/python/current/api/pymongo/database.html#pymongo.database.Database.create_collection
		"""
		
		if target is None:
			if cls.__bound__ is None:
				raise TypeError("Target required when document class not bound.")
			
			target = cls.__bound__
		
		if isinstance(target, PyMongoCollection):
			collection = target.name
			target = target.database
		elif isinstance(target, Database):
			collection = cls.__collection__
		else:
			raise TypeError("Can not retrieve database from: " + repr(target))
		
		if drop:
			target.drop_collection(collection)  # TODO: If drop fails, try just emptying?
		
		collection = target.create_collection(collection, **cls._collection_configuration(True))
		
		if indexes:
			cls.create_indexes(collection)
		
		return collection