Python类中的数据库查找 - 最佳实践

时间:2012-07-01 23:49:44

标签: python database class

我正在使用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中正确删除级联来避免这种情况,但是我是否应该在类中处理它?还有其他任何陷阱吗?

非常感谢任何建议。

1 个答案:

答案 0 :(得分:1)

你的mongokit或mongoengine会为你工作吗?

如果assetcollection需要非None设备,那么您需要检查它。您可以轻松提出错误,find_one则返回none。

什么是AssetCollection?它不会出现assetcollection甚至是一个集合,而只是一个设备?