我只是在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数组下保存新评论?默认情况下不需要注释,但如果添加了新注释,我想验证是否需要标题和消息。
这种类型的嵌套是正常的还是我必须创建单独的模型并引用它们?我读了很多关于嵌入和链接的内容,我觉得这会嵌入?
答案 0 :(得分:0)
您将验证属性放在嵌入对象的架构定义中:
comments: [
title:
type: String
required: true
message:
type: String
required: true
date_added: Date
]