【问题标题】:Mongoose validating embeddedMongoose 验证嵌入
【发布时间】:2019-09-08 03:41:27
【问题描述】:

我创建了以下架构(coffeescript):

user_schema = new app.db.schema(
    username: String
    email: String
    password: String
    account:
        plan:
            type: String
            default: "Free"
            enum: ["Free", "Bronze", "Silver", "Gold"]
        comments: [
            title: String
            message: String
            date_added: Date
        ]
)

我本可以在这里再创建 2 个模式(帐户和评论),但我知道每个用户都有一个关联的帐户,每个帐户最多有 100 个 cmets,所以我喜欢将它们全部放在一个文档中的想法。我知道(用户/帐户/cmets)没有意义,但我只是熟悉 noSql 和丰富的文档,所以这只是一个测试。

我的问题是关于为给定帐户保存新评论并验证它们。我可以通过这样做来验证用户电子邮件(顺便说一句):

user_schema.path("email").validate((value, respond)->
    respond v.check(value).isEmail()
, "Invalid email address")

...但是我将如何验证评论?如何在给定的 user.account.cmets 数组下保存新评论?默认情况下不需要评论,但如果添加了新评论,我想验证标题和消息是否是必需的。

这种嵌套是正常的还是我必须创建单独的模型并引用它们?我阅读了很多关于嵌入与链接的内容,我觉得这对嵌入有用吗?

【问题讨论】:

    标签: mongodb mongoose


    【解决方案1】:

    您将验证属性放在嵌入对象的架构定义中:

    comments: [
        title:
            type: String
            required: true
        message: 
            type: String
            required: true
        date_added: Date
    ]
    

    【讨论】:

      猜你喜欢
      • 2013-12-16
      • 2022-01-15
      • 1970-01-01
      • 1970-01-01
      • 2023-01-13
      • 2012-07-26
      • 2020-11-19
      • 2019-03-08
      • 2018-05-23
      相关资源
      最近更新 更多