mongoose非主键绑定主键(表的设计)

发布于 2022-09-12 04:45:42 字数 945 浏览 17 评论 0

最近在学node+数据库的一点东西,准备用express+mongodb为我的博客鲁几个简单的api

写博客评论api的时候,我设计的comment表是这样:

let commentSchema = new Schema({
 article_id: { type: Schema.Types.ObjectId, ref: "article" }
 ,reply_to: { type: String, default: null }
 ,content: { type: String, required: true }
 ,nickname: { type: String, required: true }
 ,email: { 
    type: String, 
    required: true, 
    match: /^[A-Za-z0-9._%-]+@([A-Za-z0-9-]+.)+[A-Za-z]{2,4}$/ 
 }
 ,date: { type: Date, default: Date.now }
})
module.exports = mongoose.model("comment", commentSchema);

关于reply_to(回复)我有些疑问,我想评论的回复者对应着某一条评论,(null时表示为一级评论,否者就是评论表comment的_id)

,replyTo: { type: Schema.Types.ObjectId, default: null} }

添加就会报错

ValidationError: reply_to: Cast to ObjectId failed for value "null" at path "reply_to"

大概意思就是我不能将ObjectId默认值设置为null.这里我有点困惑了,不知该如何设计,恳请同行们给点建议,谢谢~~~

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

北陌 2022-09-19 04:45:42

你应该是想设计成无限级分类那样的吧,reply_to设置成关联自身模型

reply_to: {
        type: mongoose.SchemaTypes.ObjectId,
        ref: 'Comment'
},

当然可以给个默认值0,代表一级评论,说的不一定准确!~~~

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文