在nestjs mongoose中保存数据时出错

koaltpgm  于 2023-04-06  发布在  Go
关注(0)|答案(1)|浏览(147)

bounty还有7天到期,回答此问题可获得+50声望奖励,Quesofat正在寻找规范答案:类成员是prop类型指向objectid的子类的完整且可验证的答案。

必须能够使用嵌套的子级执行collection.create(doc),并且没有转换错误,mongoose会自动将类别保存到类别集合中。
我有一个post模式:

@Schema({ timestamps: true })
class PostDocument extends Document {
    @Prop()
    title: string;

    @Prop({ type: MongooseSchema.Types.ObjectId, ref: 'Category' })
    categoryName: Category

}

当我试图保存数据时,我收到错误:
cast to objectid failed for value type string
请求数据:

title: "Test"
categoryName: "test"
mf98qq94

mf98qq941#

根据您提供的错误消息,您似乎已将ObjectId类型添加到Mongoose架构中的categoryName字段。但是,您正在尝试将字符串值保存到此字段。若要解决此问题,您可以将字段类型注解更改为字符串类型,或将有效的ObjectId传递到categoryName字段。

@Schema({ timestamps: true })
class PostDocument extends Document {
    @Prop()
    title: string;

    @Prop()
    categoryName: string
}

// data: { title: "Test", categoryName: "test" }

@Schema({ timestamps: true })
class PostDocument extends Document {
    @Prop()
    title: string;

    @Prop({ type: Types.ObjectId, ref: 'Category' })
    categoryId: Types.ObjectId

}

// data: { title: "Test", categoryId: category.id }

相关问题