node.js - TypeORM en-till-en join i mongodb


Jag är ny på TypeORM, så jag ber om ursäkt i förväg om den här frågan låter dum.

Jag har 2 tabeller, User och Category. User har en kolumn categoryId som är en främmande nyckel till Category-tabellen.

Kategoritabell:

@Entity()
export class Category {

    @ObjectIdColumn()
    public _id: ObjectID;

    @PrimaryColumn()
    public id: string;

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

}

Användartabell

@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}`;
    }

}

Jag vill hämta kategoridetaljer när jag frågar efter användaren. Frågan jag använder är:

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

Nu är problemet att när jag använder @JoinColumn() så ger det mig ett fel.

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

När jag använder @JoinTable() får jag inte det förväntade resultatet.

Vad är dessa @JoinColumn() och @JoinTable(). När ska jag använda dessa ?