私の問題は、私がMongoEngineでのdictオブジェクトを保存していますということです。読むMongoEngine DynamicDocuments
class MongoRecord(DynamicDocument):
record_id = SequenceField(primary_key = True)
class SimpleMongo(object):
def __init__(self, *args, **kwargs):
"""
Very simple dict-like Mongo interface
"""
if PY_VERSION == 2:
self.iterattr = 'iteritems'
else:
self.iterattr = 'items'
self.debug = DEBUG
self.dict_type = type(dict())
self.dbname = kwargs.get('dbname', 'untitled')
self.collection_name = kwargs.get('collection', 'default')
self.ip = kwargs.get('ip', '127.0.0.1')
self.port = kwargs.get('port', 27017)
self.dbconn = connect(self.dbname, host=self.ip, port=self.port)
drop = kwargs.get('drop', False)
if drop:
self.dbconn.drop_database(self.dbname)
def put(self, data):
"""
Put dict
"""
assert type(data) == self.dict_type
record = MongoRecord()
record.switch_collection(self.collection_name)
generator = getattr(data, self.iterattr)
__res__ = [setattr(record, k, v) for k,v in generator()] # iteritems() for Python 2.x
record.save()
が、それらにアクセスしようとしている:
def get(self):
record = MongoRecord()
record.switch_collection(self.collection_name)
return record.objects
は
mongoengine.queryset.managerを得ます。 QuerySetManagerオブジェクトであり、イテレータではありません。 DynamicDocumentとして保存されているMongoのデータを元に戻す適切な方法は何ですか?