]> git.jsancho.org Git - mojodb.git/blobdiff - cursor.py
msgpack instead cPickle (for multiple platforms) and str instead unicode (thinking...
[mojodb.git] / cursor.py
index ca9e2a4cc0f902dd8a3261b854ba35d64207b97e..ef6328028141994ca9e775fb13f6a4be67f5604a 100644 (file)
--- a/cursor.py
+++ b/cursor.py
@@ -19,7 +19,7 @@
 #
 ##############################################################################
 
-import cPickle
+import msgpack
 
 class Cursor(object):
     def __init__(self, collection, spec=None, fields=None, **kwargs):
@@ -89,14 +89,14 @@ class Cursor(object):
             query['where'] = []
             for k, v in self.spec.iteritems():
                 table_f = '%s$%s' % (self.collection.table_name, k)
-                if k == u'_id':
-                    query['where'].append(((table_id, 'id'), '=', cPickle.dumps(v)))
+                if k == '_id':
+                    query['where'].append(((table_id, 'id'), '=', msgpack.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:
                     field_q = self._get_cursor_field(table_id, table_f)
-                    query['where'].append((field_q, '=', cPickle.dumps(v)))
+                    query['where'].append((field_q, '=', msgpack.dumps(v)))
 
         return self.collection.database.connection._get_cursor(self.collection.database.db_name, query)
 
@@ -117,12 +117,12 @@ class Cursor(object):
                 raise StopIteration
             else:
                 document = {}
-                if u'_id' in self.fields:
-                    document[u'_id'] = cPickle.loads(res[0])
-                fields_without_id = filter(lambda x: x != u'_id', self.fields)
+                if '_id' in self.fields:
+                    document['_id'] = msgpack.loads(res[0])
+                fields_without_id = filter(lambda x: x != '_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])
+                        document[fields_without_id[i]] = msgpack.loads(res[i + 1])
                 return document
         else:
             return None