gpt4 book ai didi

mongoose - 使用 typegoose 将项目添加到 Ref 数组

转载 作者:行者123 更新时间:2023-12-03 23:54:15 26 4
gpt4 key购买 nike

我得到了 2 个扩展类 Typegoose ( ItemPlayer )

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不是 pupolated,只有一个 Array of ObjectId .
    async findAll(): Promise<Player[]> | null {
return await this.playerModel.find().exec();
}

PS:我正在使用带有 nestjs 和 netsjs-typegoose 的 Typegoose

最佳答案

好的,这就是如何从 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;
}

关于mongoose - 使用 typegoose 将项目添加到 Ref 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51825036/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com