2012-09-30 210 views
0

我只是在我的第一天mongodb /貓鼬那麼請裸照。我創建了下面的架構(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和豐富的文檔,所以這只是一個測試。

我的問題是關於保存給定帳戶的新評論並驗證它們。我可以通過這樣做來驗證用戶電子郵件(它工作順便說一句):

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

...但是如何驗證評論?如何在給定的user.account.comments數組下保存新評論?默認情況下不需要評論,但如果添加了新評論,我想驗證標題和消息是否必需。

這種類型的嵌套正常或我必須創建單獨的模型並引用它們?我讀了很多關於嵌入和鏈接的內容,我覺得這樣會嵌入?

回答

0

你把驗證正確的嵌入對象的架構定義屬性:

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