NestJs / Mongoose Несколько схем для одной модели - PullRequest
0 голосов
/ 11 мая 2018

Я бродил, если есть способ иметь несколько схем для одной и той же модели.В одном из моих модулей у меня есть две разные схемы, которые пытаются получить доступ к одной и той же модели.Но когда я делаю это:

@Module({
   imports: [
      MongooseModule.forFeature([
         {name: 'foo', schema: Schema1},
         {name: 'foo', schema: Schema2},
   ]), ......

я получаю ошибку Cannot overwrite 'foo' model once compiled

Вот пример схем, которые у меня есть:

export class Schema1{
   type: { type: string, index: true, default: 'someValue'},
   data: {mapname: string}
}
export class Schema2{
   type: {type: string, index: true, default: 'anotherValue'}.
   data: {showStats: boolean, email: string}
}

1 Ответ

0 голосов
/ 26 июля 2018

При использовании модели, например, в службе, на нее ссылается только имя @InjectModel('foo') и, следовательно, она должна быть однозначной.Вы не можете определить две модели с одинаковым именем.

Как вы сказали, две модели могут указывать на одну и ту же коллекцию, поскольку имя коллекции является необязательным параметром, см. исходный код :

static forFeature(
  models: { name: string; schema: any; collection?: string }[] = [],
  connectionName: string = DefaultDbConnectionToken,
)
...