Mongoose验证嵌入式

时间:2012-09-30 12:36:29

标签: mongodb mongoose

我只是在mongodb / mongoose的第一天,所以请和我一起露眼。我创建了以下架构(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条评论,所以我喜欢将它全部放在一个文档中。我知道(用户/帐户/评论)没有意义,但我只是熟悉noSql和丰富的文档,所以这只是一个测试。

我的问题是保存给定帐户的新评论并验证它们。我可以通过执行此操作验证用户电子邮件(btw正常工作):

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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