diff --git a/lib/db.js b/lib/db.js index 40c51f9e217..f2ed4530637 100644 --- a/lib/db.js +++ b/lib/db.js @@ -388,6 +388,7 @@ const collectionKeys = [ 'serializeFunctions', 'strict', 'readConcern', + 'writeConcern', 'ignoreUndefined', 'promoteValues', 'promoteBuffers', @@ -434,7 +435,7 @@ Db.prototype.collection = function(name, options, callback) { } // Merge in all needed options and ensure correct writeConcern merging from db level - options = mergeOptionsAndWriteConcern(options, this.s.options, collectionKeys, true); + options = mergeOptionsAndWriteConcern(options, this.s.options, collectionKeys); // Execute if (options == null || !options.strict) { diff --git a/lib/utils.js b/lib/utils.js index 0ebbb4565af..e95c809047a 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -290,7 +290,7 @@ var filterOptions = function(options, names) { var writeConcernKeys = ['w', 'j', 'wtimeout', 'fsync']; // Merge the write concern options -var mergeOptionsAndWriteConcern = function(targetOptions, sourceOptions, keys, mergeWriteConcern) { +var mergeOptionsAndWriteConcern = function(targetOptions, sourceOptions, keys) { // Mix in any allowed options for (var i = 0; i < keys.length; i++) { if (!targetOptions[keys[i]] && sourceOptions[keys[i]] !== undefined) { @@ -298,9 +298,6 @@ var mergeOptionsAndWriteConcern = function(targetOptions, sourceOptions, keys, m } } - // No merging of write concern - if (!mergeWriteConcern) return targetOptions; - // Found no write Concern options var found = false; for (i = 0; i < writeConcernKeys.length; i++) {