0

我创建了以下架构(咖啡脚本):

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 条评论,所以我喜欢将它们全部放在一个文档中的想法。我知道(用户/帐户/评论)没有意义,但我只是让自己熟悉 noSql 和丰富的文档,所以这只是一个测试。

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

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

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

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

4

1 回答 1

0

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

comments: [
    title:
        type: String
        required: true
    message: 
        type: String
        required: true
    date_added: Date
]
于 2012-09-30T14:15:39.803 回答