diff --git a/lib/document.js b/lib/document.js index 3f7b942e72d..c564a541281 100644 --- a/lib/document.js +++ b/lib/document.js @@ -3107,7 +3107,7 @@ Document.prototype.$__reset = function reset() { return _this.$__getValue(i); }) .filter(function(val) { - return val && val instanceof Array && utils.isMongooseDocumentArray(val) && val.length; + return val && Array.isArray(val) && utils.isMongooseDocumentArray(val) && val.length; }) .forEach(function(array) { let i = array.length; @@ -3310,7 +3310,7 @@ Document.prototype.$__getArrayPathsToValidate = function() { return this.$__getValue(i); }.bind(this)) .filter(function(val) { - return val && val instanceof Array && utils.isMongooseDocumentArray(val) && val.length; + return val && Array.isArray(val) && utils.isMongooseDocumentArray(val) && val.length; }).reduce(function(seed, array) { return seed.concat(array); }, []) diff --git a/lib/model.js b/lib/model.js index de4a28172d4..6890bc7aa29 100644 --- a/lib/model.js +++ b/lib/model.js @@ -3163,7 +3163,7 @@ Model.create = function create(doc, options, callback) { return cb(firstError, savedDocs); } - if (doc instanceof Array) { + if (Array.isArray(doc)) { cb(null, savedDocs); } else { cb.apply(this, [null].concat(savedDocs)); diff --git a/lib/plugins/trackTransaction.js b/lib/plugins/trackTransaction.js index 5a4b13f85f5..11444d16d45 100644 --- a/lib/plugins/trackTransaction.js +++ b/lib/plugins/trackTransaction.js @@ -47,7 +47,7 @@ function _getAtomics(doc, previous) { for (const path of pathsToCheck) { const val = doc.$__getValue(path); if (val != null && - val instanceof Array && + Array.isArray(val) && utils.isMongooseDocumentArray(val) && val.length && val[arrayAtomicsSymbol] != null &&