0

次のスキーマ(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配列の下に新しいコメントを保存するにはどうすればよいですか?デフォルトではコメントは必要ありませんが、新しいコメントが追加された場合は、タイトルとメッセージが必要であることを検証したいとします。

このタイプのネストは正常ですか、それとも個別のモデルを作成して参照する必要がありますか?埋め込みとリンクについてたくさん読んだのですが、これで埋め込みができると思いますか?

4

1 に答える 1

0

検証属性は、埋め込みオブジェクトのスキーマ定義に正しく配置します。

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