我正在使用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中正确删除级联来避免这种情况,但是我是否应该在类中处理它?还有其他任何陷阱吗?
非常感谢任何建议。
答案 0 :(得分:1)
你的mongokit或mongoengine会为你工作吗?
如果assetcollection需要非None设备,那么您需要检查它。您可以轻松提出错误,find_one则返回none。
什么是AssetCollection?它不会出现assetcollection甚至是一个集合,而只是一个设备?