I have tried every answer is StackOverflow. But none of this answered not working for me or my question, I have created a new Mongo collection for a new project, and I am adding data to this collection using the map() function.
Mongo collection:-
@Schema({ timestamps: true })
export class TagServiceEntity {
@Prop({
type: String,
default: function genUUID() {
return uuidv4();
},
})
_id: string;
@Prop({
type: String,
required: true,
trim: true,
index: true,
})
name: string;
@Prop({ type: String, slug: 'name', unique: true })
slug: string;
@Prop()
tenantId: string;
}
export const TagServiceSchema = SchemaFactory.createForClass(TagServiceEntity);
Map function:-
async setTags(tags: Array<string>, tenantId: string): Promise<Array<string>> {
if (tags.length > 0 && tags[0] !== '') {
return await Promise.all(
tags.map(async (tag: any) => {
const isTagExist = await this.tagsService.checkTagExist(tag);
if (isTagExist) {
return this.tagsService.findByTagName(tag);
}
const newTagData = {
name: tag.toString(),
tenantId: 'test-tenantId-01',
};
const newTag = await this.tagsService.create(newTagData);
return newTag._id;
}),
);
}
return [];
}
DAO Function: -
async create(createTagServiceDto: any) {
console.log(createTagServiceDto);
try {
const createTags = new this.tagsModel(createTagServiceDto);
const tags = await createTags.save();
if (tags) {
return tags;
}
} catch (error) {
console.log(error);
throw error;
}
}