[Checkins] SVN: zopyx.versioning/trunk/zopyx/versioning/storages/mongodb/storage.py fine-tuning the data model

Andreas Jung andreas at andreas-jung.com
Sat Jul 3 04:11:45 EDT 2010


Log message for revision 114123:
  fine-tuning the data model
  

Changed:
  U   zopyx.versioning/trunk/zopyx/versioning/storages/mongodb/storage.py

-=-
Modified: zopyx.versioning/trunk/zopyx/versioning/storages/mongodb/storage.py
===================================================================
--- zopyx.versioning/trunk/zopyx/versioning/storages/mongodb/storage.py	2010-07-02 15:50:54 UTC (rev 114122)
+++ zopyx.versioning/trunk/zopyx/versioning/storages/mongodb/storage.py	2010-07-03 08:11:43 UTC (rev 114123)
@@ -33,9 +33,11 @@
             revision = id_entry['_rev'] + 1
             self.metadata.update({'_oid' : id}, {'$set' : {'_rev' : revision}} )
 
-        data = dict(_oid=id, _rev=revision)
-        data.update(anyjson.deserialize(version_data))
-        data.update(anyjson.deserialize(revision_metadata))
+        data = dict(_oid=id, 
+                    _rev=revision,
+                    _data=anyjson.deserialize(version_data),
+                    _metadata=anyjson.deserialize(revision_metadata),
+                    )
         self.revisions.save(data)
         return revision
 
@@ -47,10 +49,7 @@
 
         entry = self.revisions.find_one({'_oid' : id, '_rev' : revision})
         if entry:
-            del entry['_oid']
-            del entry['_rev']
-            del entry['_id']
-            return anyjson.serialize(entry)
+            return anyjson.serialize(entry._data)
 
         raise errors.NoRevisionFound('No revision %d found for document with ID %s found' % (revision, id))
 
@@ -74,7 +73,7 @@
 
     def revision_metadata(self, id, revision):
         revision = self.revisions.find_one({'_oid' : id, '_rev' : revision})
-        return revision
+        return revision._metadata
 
 
     def remove_revision(self, id, revision):



More information about the checkins mailing list