From 02959efba818b596993c526e87e304cd52859c85 Mon Sep 17 00:00:00 2001 From: David Glasser Date: Mon, 11 Mar 2013 20:28:09 -0700 Subject: [PATCH] Don't apply transform for server-side observeChanges (eg publishes). --- packages/mongo-livedata/allow_tests.js | 3 +++ packages/mongo-livedata/mongo_driver.js | 8 +++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/mongo-livedata/allow_tests.js b/packages/mongo-livedata/allow_tests.js index ad441c5976..f8fb071665 100644 --- a/packages/mongo-livedata/allow_tests.js +++ b/packages/mongo-livedata/allow_tests.js @@ -378,6 +378,9 @@ _.each(['STRING', 'MONGO'], function (idGeneration) { })); }, function (test, expect) { + test.equal( + restrictedCollectionWithTransform.findOne({"a.bar": "bar"}), + {foo: "foo", bar: "bar", baz: "baz"}); restrictedCollectionWithTransform.remove(item1, expect(function (e, res) { test.isFalse(e); })); diff --git a/packages/mongo-livedata/mongo_driver.js b/packages/mongo-livedata/mongo_driver.js index 405c917bbe..5022460697 100644 --- a/packages/mongo-livedata/mongo_driver.js +++ b/packages/mongo-livedata/mongo_driver.js @@ -374,7 +374,7 @@ _.each(['forEach', 'map', 'rewind', 'fetch', 'count'], function (method) { if (!self._synchronousCursor) self._synchronousCursor = self._mongo._createSynchronousCursor( - self._cursorDescription); + self._cursorDescription, true); return self._synchronousCursor[method].apply( self._synchronousCursor, arguments); @@ -433,7 +433,8 @@ Cursor.prototype.observeChanges = function (callbacks) { self._cursorDescription, ordered, callbacks); }; -_Mongo.prototype._createSynchronousCursor = function (cursorDescription) { +_Mongo.prototype._createSynchronousCursor = function (cursorDescription, + useTransform) { var self = this; var future = new Future; @@ -459,6 +460,7 @@ _Mongo.prototype._createSynchronousCursor = function (cursorDescription) { throw result[1]; return new SynchronousCursor(result[1], + useTransform && cursorDescription.options && cursorDescription.options.transform); }; @@ -814,7 +816,7 @@ _.extend(LiveResultsSet.prototype, { self._synchronousCursor.rewind(); } else { self._synchronousCursor = self._mongoHandle._createSynchronousCursor( - self._cursorDescription); + self._cursorDescription, false); } var newResults = self._synchronousCursor.getRawObjects(self._ordered); var oldResults = self._results;