【发布时间】:2021-08-27 22:46:24
【问题描述】:
目前,无论item.name 是否唯一,我的代码只是将任何新的flagDtos 添加到$addToSet,但我想更改它以便:
- 如果
item.name是唯一的,添加新的flagDtos对象 - 如果与
item.name匹配,则更新flagDto。
如何根据条件创建 $addToSet?
async addFlagsToFeature(_id: number, flagDtos: FlagDto[]): Promise<FeatureResponse> {
const filter: FilterQuery<FeatureDocument> = { _id };
let success;
var flagIds = [];
return this.featureModel
.findOneAndUpdate({ filter, $addToSet: { flags: flagDtos } })
.then((doc) => {
const featureDto = new FeatureDto();
featureDto.mapFromSchema(doc);
featureDto.flags.forEach((item) => {
flagIds.push(new FlagDto({ featureFlagId: item.featureFlagId }));
success = new SuccessFeatureResponseDto(featureDto.id, flagIds);
});
return new FeatureResponse(success, null);
})
}
这是我的FlagDto 课程
export class FlagDto {
featureFlagId?: string;
name: string;
}
【问题讨论】:
标签: typescript mongodb mongoose