Ricerca nel sito web

node.js - TypeORM join uno-a-uno in mongodb


Sono nuovo a TypeORM, quindi mi scuso in anticipo se questa domanda sembra sciocca.

Ho 2 tabelle: User e Category. User ha una colonna categoryId che è una chiave esterna alla tabella Category.

Tabella delle categorie:

@Entity()
export class Category {

    @ObjectIdColumn()
    public _id: ObjectID;

    @PrimaryColumn()
    public id: string;

    public toString(): string {
        return `${this.id}`;
    }

}

Tabella utenti

@Entity()
export class User {

    @ObjectIdColumn()
    public _id: ObjectID;

    @PrimaryColumn()
    public id: string;

    @Column()
    public categoryId: string;

    @OneToOne(type => Category)
    @JoinColumn()
    category: Category;

    public toString(): string {
        return `${this.id} ${this.categoryId}`;
    }

}

Voglio recuperare i dettagli della categoria mentre interrogo l'utente. La query che sto usando è:

userRepository.findOne({ where, relations: ['category']});

Ora il problema è che quando uso @JoinColumn(), mi dà un errore.

MongoError: bad index key pattern {}: Index keys cannot be empty.

Quando uso @JoinTable(), non ottengo il risultato previsto.

Cosa sono questi @JoinColumn() e @JoinTable(). Quando dovrei usarli ?