query['where'] = []
for k, v in self.spec.iteritems():
table_f = '%s$%s' % (self.collection.table_name, k)
- if type(v) in (int, float):
+ if k == u'_id':
+ query['where'].append(((table_id, 'id'), '=', cPickle.dumps(v)))
+ elif type(v) in (int, float):
field_q = self._get_cursor_field(table_id, table_f, field_name='number')
query['where'].append((field_q, '=', v))
else:
raise StopIteration
else:
document = {}
- if '_id' in self.fields:
- document['_id'] = res[0]
- fields_without_id = filter(lambda x: x != '_id', self.fields)
+ if u'_id' in self.fields:
+ document[u'_id'] = cPickle.loads(res[0])
+ fields_without_id = filter(lambda x: x != u'_id', self.fields)
for i in xrange(len(fields_without_id)):
if not res[i + 1] is None:
document[fields_without_id[i]] = cPickle.loads(res[i + 1])