0

私は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内で適切にカスケードされるようにすることで、これを回避できるはずですが、クラス内でもそれを処理する必要がありますか?他に落とし穴はありますか?

アドバイスをいただければ幸いです。

4

1 に答える 1

1

neithe mongokitまたはmongoengineはあなたのために働きますか?

アセットコレクションにNone以外のデバイスが必要な場合は、はい、それを確認する必要があります。find_oneがnoneを返す場合、簡単にエラーが発生する可能性があります。

AssetCollectionとは何ですか?アセットコレクションはコレクションでさえあるようには見えませんが、代わりに単なるデバイスですか?

于 2012-07-01T23:57:24.313 に答える