Skip to content

Commit f0f7e75

Browse files
committed
types: make findOneAndDelete() without options return result doc, not ModifyResult
Fix #14130
1 parent 62b3f45 commit f0f7e75

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

test/types/models.test.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -853,3 +853,12 @@ async function gh14003() {
853853
await TestModel.validate({ name: 'foo' }, ['name']);
854854
await TestModel.validate({ name: 'foo' }, { pathsToSkip: ['name'] });
855855
}
856+
857+
async function gh14114() {
858+
const schema = new mongoose.Schema({ name: String });
859+
const Test = mongoose.model('Test', schema);
860+
861+
expectType<ReturnType<(typeof Test)['hydrate']> | null>(
862+
await Test.findOneAndDelete({ name: 'foo' })
863+
);
864+
}

types/models.d.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -608,11 +608,11 @@ declare module 'mongoose' {
608608
'findOneAndDelete'
609609
>;
610610
findOneAndDelete<ResultDoc = THydratedDocumentType>(
611-
filter?: FilterQuery<TRawDocType>,
612-
options?: QueryOptions<TRawDocType> & { includeResultMetadata: true }
611+
filter: FilterQuery<TRawDocType>,
612+
options: QueryOptions<TRawDocType> & { includeResultMetadata: true }
613613
): QueryWithHelpers<ModifyResult<ResultDoc>, ResultDoc, TQueryHelpers, TRawDocType, 'findOneAndDelete'>;
614614
findOneAndDelete<ResultDoc = THydratedDocumentType>(
615-
filter?: FilterQuery<TRawDocType>,
615+
filter?: FilterQuery<TRawDocType> | null,
616616
options?: QueryOptions<TRawDocType> | null
617617
): QueryWithHelpers<ResultDoc | null, ResultDoc, TQueryHelpers, TRawDocType, 'findOneAndDelete'>;
618618

0 commit comments

Comments
 (0)