私はpymongo
クラスを構築するための最良の方法を使用し、見つけようとしています。現在、私は次のようなことをしています。
class AssetCollection:
def __init__(self,db,**kwargs):
self.__dict__.update(kwargs)
self.Device = Device(db,**db.Devices.find_one({'_id':kwargs['DeviceID']}))
def __repr__(self):
return '<%s %s>' % (self.Name,self._id)
これは非常に柔軟性があり、MongoDBの柔軟性を模倣していますが、最善の方法はわかりません。たとえば、それ自体が発生する可能性のある問題は、Device
ルックアップがを返す場合、オブジェクトがインスタンス化に失敗することNone
です。削除がdb内で適切にカスケードされるようにすることで、これを回避できるはずですが、クラス内でもそれを処理する必要がありますか?他に落とし穴はありますか?
アドバイスをいただければ幸いです。