diff --git a/lib/document.js b/lib/document.js index 617a5c4b3fe..aec1402ca56 100644 --- a/lib/document.js +++ b/lib/document.js @@ -2793,7 +2793,7 @@ Document.prototype.$__validate = function(pathsToValidate, options, callback) { // only validate required fields when necessary const pathDetails = _getPathsToValidate(this, pathsToValidate, pathsToSkip); - let paths = shouldValidateModifiedOnly ? + const paths = shouldValidateModifiedOnly ? pathDetails[0].filter((path) => this.$isModified(path)) : pathDetails[0]; const skipSchemaValidators = pathDetails[1]; @@ -2993,7 +2993,7 @@ Document.prototype.validateSync = function(pathsToValidate, options) { // only validate required fields when necessary const pathDetails = _getPathsToValidate(this, pathsToValidate, pathsToSkip); - let paths = shouldValidateModifiedOnly ? + const paths = shouldValidateModifiedOnly ? pathDetails[0].filter((path) => this.$isModified(path)) : pathDetails[0]; const skipSchemaValidators = pathDetails[1]; diff --git a/lib/model.js b/lib/model.js index b03d3b71a5d..4843012b349 100644 --- a/lib/model.js +++ b/lib/model.js @@ -3108,10 +3108,17 @@ Model.$__insertMany = function(arr, options, callback) { if (rawResult) { if (ordered === false) { + for (let i = 0; i < results.length; ++i) { + if (results[i] === void 0) { + results[i] = docs[i]; + } + } + // Decorate with mongoose validation errors in case of unordered, // because then still do `insertMany()` res.mongoose = { - validationErrors: validationErrors + validationErrors: validationErrors, + results: results }; } return callback(null, res);