次のスキーマ(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つのスキーマ(アカウントとコメント)を作成することもできますが、各ユーザーには1つのアカウントが関連付けられており、各アカウントには最大100のコメントがあるので、すべてを1つのドキュメント内に含めるというアイデアが気に入っています。私が知っていること(ユーザー/アカウント/コメント)は意味がありませんが、noSqlと豊富なドキュメントに慣れているだけなので、これは単なるテストです。
私の質問は、特定のアカウントの新しいコメントを保存して検証することです。これを行うことでユーザーの電子メールを検証できます(これはところで機能します):
user_schema.path("email").validate((value, respond)->
respond v.check(value).isEmail()
, "Invalid email address")
...しかし、コメントを検証するにはどうすればよいですか?特定のuser.account.comments配列の下に新しいコメントを保存するにはどうすればよいですか?デフォルトではコメントは必要ありませんが、新しいコメントが追加された場合は、タイトルとメッセージが必要であることを検証したいとします。
このタイプのネストは正常ですか、それとも個別のモデルを作成して参照する必要がありますか?埋め込みとリンクについてたくさん読んだのですが、これで埋め込みができると思いますか?