diff --git a/lib/model.js b/lib/model.js index 238b3d73225..eca0693a4b9 100644 --- a/lib/model.js +++ b/lib/model.js @@ -874,6 +874,8 @@ Model.prototype.$__where = function _where(where) { * assert.ok(err) * }) * + * @param {Object} [options] + * @param {Session} [options.session=null] the [session](https://docs.mongodb.com/manual/reference/server-sessions/) associated with this operation. If not specified, defaults to the [document's associated session](api.html#document_Document-$session). * @param {function(err,product)} [fn] optional callback * @return {Promise} Promise * @api public @@ -1819,21 +1821,28 @@ Model.translateAliases = function translateAliases(fields) { * not execute [document middleware](/docs/middleware.html#types-of-middleware). * * @param {Object} conditions + * @param {Object} [options] + * @param {Session} [options.session=null] the [session](https://docs.mongodb.com/manual/reference/server-sessions/) associated with this operation. * @param {Function} [callback] * @return {Query} * @api public */ -Model.remove = function remove(conditions, callback) { +Model.remove = function remove(conditions, options, callback) { _checkContext(this, 'remove'); if (typeof conditions === 'function') { callback = conditions; conditions = {}; + options = null; + } else if (typeof options === 'function') { + callback = options; + options = null; } // get the mongodb collection object const mq = new this.Query({}, {}, this, this.collection); + mq.setOptions(options); callback = this.$handleCallbackError(callback); @@ -1908,8 +1917,7 @@ Model.deleteMany = function deleteMany(conditions, options, callback) { callback = conditions; conditions = {}; options = null; - } - else if (typeof options === 'function') { + } else if (typeof options === 'function') { callback = options; options = null; } diff --git a/test/docs/transactions.test.js b/test/docs/transactions.test.js index 32034a4764e..8b810542ced 100644 --- a/test/docs/transactions.test.js +++ b/test/docs/transactions.test.js @@ -21,7 +21,8 @@ describe('transactions', function() { return db. then(() => { // Skip if not a repl set - if (db.client.topology.constructor.name !== 'ReplSet') { + if (db.client.topology.constructor.name !== 'ReplSet' && + !db.client.topology.s.description.type.includes('ReplicaSet')) { _skipped = true; this.skip();