Cleanup
This commit is contained in:
27
node_modules/mongodb/lib/operations/map_reduce.js
generated
vendored
27
node_modules/mongodb/lib/operations/map_reduce.js
generated
vendored
@@ -9,10 +9,16 @@ const handleCallback = require('../utils').handleCallback;
|
||||
const isObject = require('../utils').isObject;
|
||||
const loadDb = require('../dynamic_loaders').loadDb;
|
||||
const OperationBase = require('./operation').OperationBase;
|
||||
const resolveReadPreference = require('../utils').resolveReadPreference;
|
||||
const ReadPreference = require('../core').ReadPreference;
|
||||
const toError = require('../utils').toError;
|
||||
const Aspect = require('./operation').Aspect;
|
||||
const defineAspects = require('./operation').defineAspects;
|
||||
const decorateWithExplain = require('../utils').decorateWithExplain;
|
||||
const maxWireVersion = require('../core/utils').maxWireVersion;
|
||||
const MongoError = require('../error').MongoError;
|
||||
|
||||
const exclusionList = [
|
||||
'explain',
|
||||
'readPreference',
|
||||
'session',
|
||||
'bypassDocumentValidation',
|
||||
@@ -59,8 +65,8 @@ class MapReduceOperation extends OperationBase {
|
||||
const reduce = this.reduce;
|
||||
let options = this.options;
|
||||
|
||||
const mapCommandHash = {
|
||||
mapreduce: coll.collectionName,
|
||||
let mapCommandHash = {
|
||||
mapReduce: coll.collectionName,
|
||||
map: map,
|
||||
reduce: reduce
|
||||
};
|
||||
@@ -80,7 +86,7 @@ class MapReduceOperation extends OperationBase {
|
||||
options = Object.assign({}, options);
|
||||
|
||||
// Ensure we have the right read preference inheritance
|
||||
options.readPreference = resolveReadPreference(coll, options);
|
||||
options.readPreference = ReadPreference.resolve(coll, options);
|
||||
|
||||
// If we have a read preference and inline is not set as output fail hard
|
||||
if (
|
||||
@@ -110,6 +116,14 @@ class MapReduceOperation extends OperationBase {
|
||||
return callback(err, null);
|
||||
}
|
||||
|
||||
if (this.explain) {
|
||||
if (maxWireVersion(coll.s.topology) < 9) {
|
||||
callback(new MongoError(`server does not support explain on mapReduce`));
|
||||
return;
|
||||
}
|
||||
mapCommandHash = decorateWithExplain(mapCommandHash, this.explain);
|
||||
}
|
||||
|
||||
// Execute command
|
||||
executeCommand(coll.s.db, mapCommandHash, options, (err, result) => {
|
||||
if (err) return handleCallback(callback, err);
|
||||
@@ -118,6 +132,9 @@ class MapReduceOperation extends OperationBase {
|
||||
return handleCallback(callback, toError(result));
|
||||
}
|
||||
|
||||
// If an explain operation was executed, don't process the server results
|
||||
if (this.explain) return callback(undefined, result);
|
||||
|
||||
// Create statistics value
|
||||
const stats = {};
|
||||
if (result.timeMillis) stats['processtime'] = result.timeMillis;
|
||||
@@ -187,4 +204,6 @@ function processScope(scope) {
|
||||
return new_scope;
|
||||
}
|
||||
|
||||
defineAspects(MapReduceOperation, [Aspect.EXPLAINABLE]);
|
||||
|
||||
module.exports = MapReduceOperation;
|
||||
|
||||
Reference in New Issue
Block a user