我创建了以下架构(咖啡脚本):
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 数组下保存新评论?默认情况下不需要评论,但如果添加了新评论,我想验证标题和消息是否是必需的。
这种嵌套是正常的还是我必须创建单独的模型并引用它们?我读了很多关于嵌入与链接的内容,我觉得这会成为嵌入?