我有2个类扩展了Typegoose
(Item
和Player
)
在Player
类中,我得到了Ref<Item>[]
的数组
@arrayProp({itemsRef: Item})
items?: Ref<Item>[];
在我的PlayersService
中,我使用这种方法来推送Item
:
async pushItem( itemPlayerDto: {playerId: string, item: Item}) : Promise<Player> {
let player = await this.findById(itemPlayerDto.playerId);
player.items.push(itemPlayerDto.item);
return await new this.playerModel(player).save();
}
但是当我检索Players
时,他们的items
并没有被发送,只有Array of ObjectId
。
async findAll(): Promise<Player[]> | null {
return await this.playerModel.find().exec();
}
PS:我正在将Typegoose与nestjs和netsjs-typegoose一起使用
答案 0 :(得分:2)
好的,这就是从typegoose类填充Ref项目的方法(使用:populate方法):
async findByName(playerName: string): Promise<Player> | null {
let player = await this.playerModel.findOne({'displayName': playerName}).exec();
let playerWithItems = await player.populate({
path: 'items',
model: 'Item'
}).execPopulate();
return playerWithItems;
}