Skip to content

Commit 84ad659

Browse files
Merge branch 'master' of https://github.com/nestjs/mongoose
2 parents 1114488 + 607f0c6 commit 84ad659

File tree

3 files changed

+12
-9
lines changed

3 files changed

+12
-9
lines changed

lib/common/mongoose.decorators.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Inject } from '@nestjs/common';
22
import { getConnectionToken, getModelToken } from './mongoose.utils';
33

4-
export const InjectModel = (model: string) => Inject(getModelToken(model));
4+
export const InjectModel = (model: string, connectionName?: string) => Inject(getModelToken(model, connectionName));
55

66
export const InjectConnection = (name?: string) =>
77
Inject(getConnectionToken(name));

lib/common/mongoose.utils.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,11 @@ import { Observable } from 'rxjs';
33
import { delay, retryWhen, scan } from 'rxjs/operators';
44
import { DEFAULT_DB_CONNECTION } from '../mongoose.constants';
55

6-
export function getModelToken(model: string) {
7-
return `${model}Model`;
6+
export function getModelToken(model: string, connectionName?: string) {
7+
if (connectionName === undefined) {
8+
return `${model}Model`;
9+
}
10+
return `${getConnectionToken(connectionName)}/${model}Model`;
811
}
912

1013
export function getConnectionToken(name?: string) {

lib/mongoose.providers.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@ export function createMongooseProviders(
1111
(providers, option) => [
1212
...providers,
1313
...(option.discriminators || []).map((d) => ({
14-
provide: getModelToken(d.name),
14+
provide: getModelToken(d.name, connectionName),
1515
useFactory: (model: Model<Document>) =>
1616
model.discriminator(d.name, d.schema),
17-
inject: [getModelToken(option.name)],
17+
inject: [getModelToken(option.name, connectionName)],
1818
})),
1919
{
20-
provide: getModelToken(option.name),
20+
provide: getModelToken(option.name, connectionName),
2121
useFactory: (connection: Connection) => {
2222
const model = connection.model(
2323
option.name,
@@ -41,7 +41,7 @@ export function createMongooseAsyncProviders(
4141
return [
4242
...providers,
4343
{
44-
provide: getModelToken(option.name),
44+
provide: getModelToken(option.name, connectionName),
4545
useFactory: async (connection: Connection, ...args: unknown[]) => {
4646
const schema = await option.useFactory(...args);
4747
const model = connection.model(
@@ -54,10 +54,10 @@ export function createMongooseAsyncProviders(
5454
inject: [getConnectionToken(connectionName), ...(option.inject || [])],
5555
},
5656
...(option.discriminators || []).map((d) => ({
57-
provide: getModelToken(d.name),
57+
provide: getModelToken(d.name, connectionName),
5858
useFactory: (model: Model<Document>) =>
5959
model.discriminator(d.name, d.schema),
60-
inject: [getModelToken(option.name)],
60+
inject: [getModelToken(option.name, connectionName)],
6161
})),
6262
];
6363
}, [] as Provider[]);

0 commit comments

Comments
 (0)