Skip to content

Commit d3701d6

Browse files
committed
perf: avoid cloning on save when minimize: false (Fixes #15694)
1 parent ee6a377 commit d3701d6

File tree

4 files changed

+10
-4
lines changed

4 files changed

+10
-4
lines changed

lib/model.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -357,7 +357,12 @@ Model.prototype.$__handleSave = function(options, callback) {
357357
}
358358
if (this.$isNew) {
359359
// send entire doc
360-
const obj = this.toObject(saveToObjectOptions);
360+
let obj;
361+
if (this.$__schema.options.minimize === false) {
362+
obj = this._doc;
363+
} else {
364+
obj = this.toObject(saveToObjectOptions);
365+
}
361366
if ((obj || {})._id === void 0) {
362367
// documents must have an _id else mongoose won't know
363368
// what to update later if more changes are made. the user
@@ -5194,4 +5199,4 @@ function _getContexts(hook) {
51945199
* Module exports.
51955200
*/
51965201

5197-
module.exports = exports = Model;
5202+
module.exports = exports = Model;

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
"bson": "^6.10.4",
2424
"kareem": "2.6.3",
2525
"mongodb": "~6.20.0",
26+
"mongoose": "^8.19.3",
2627
"mpath": "0.9.0",
2728
"mquery": "5.0.0",
2829
"ms": "2.1.3",

types/document.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,4 +302,4 @@ declare module 'mongoose' {
302302
validateSync<T extends keyof DocType>(pathsToValidate?: T | T[], options?: AnyObject): Error.ValidationError | null;
303303
validateSync(pathsToValidate?: pathsToValidate, options?: AnyObject): Error.ValidationError | null;
304304
}
305-
}
305+
}

types/index.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -931,4 +931,4 @@ declare module 'mongoose' {
931931
export function skipMiddlewareFunction(val: any): Kareem.SkipWrappedFunction;
932932

933933
export default mongoose;
934-
}
934+
}

0 commit comments

Comments
 (0)