diff --git a/lib/dao.js b/lib/dao.js index d146586a..887711df 100644 --- a/lib/dao.js +++ b/lib/dao.js @@ -1535,7 +1535,7 @@ DataAccessObject.find = function find(query, options, cb) { this.applyScope(query); - const near = query && geo.nearFilter(query.where); + let near = query && geo.nearFilter(query.where); const supportsGeo = !!connector.buildNearFilter; let geoQueryObject; @@ -1569,7 +1569,8 @@ DataAccessObject.find = function find(query, options, cb) { return cb.promise; } } - function geoCallbackWithoutNotify(err, data) { + + function geoCallback(err, data) { const memory = new Memory(); const modelName = self.modelName; @@ -1588,37 +1589,15 @@ DataAccessObject.find = function find(query, options, cb) { }); }); - // FIXME: apply "includes" and other transforms - see allCb below memory.all(modelName, geoQueryObject, options, allCb); } else { cb(null, []); } } - function geoCallbackWithNotify(err, data) { - if (err) return cb(err); - - async.map(data, function(item, next) { - const context = { - Model: self, - data: item, - isNewInstance: false, - hookState: hookState, - options: options, - }; - - self.notifyObserversOf('loaded', context, function(err) { - if (err) return next(err); - next(null, context.data); - }); - }, function(err, results) { - if (err) return cb(err); - geoCallbackWithoutNotify(null, results); - }); - } function queryGeo(query) { geoQueryObject = query; - const geoCallback = options.notify === false ? geoCallbackWithoutNotify : geoCallbackWithNotify; + near = query && geo.nearFilter(query.where); invokeConnectorMethod(connector, 'all', self, [{}], options, geoCallback); } diff --git a/test/memory.test.js b/test/memory.test.js index a9fda4ce..30429248 100644 --- a/test/memory.test.js +++ b/test/memory.test.js @@ -917,6 +917,9 @@ describe('Unoptimized connector', function() { ds.connector.findOrCreate = false; ds.connector.upsertWithWhere = false; + // disable native location queries + ds.connector.buildNearFilter = false; + require('./persistence-hooks.suite')(ds, should, { replaceOrCreateReportsNewInstance: true, });