2017-04-25 125 views
3

是否有可能在貓鼬中嵌套模式,並且對孩子有必要的驗證器?像這樣:貓鼬需要一個子文檔嗎?

我在文檔中找不到任何東西。謝謝。

+1

你試過這個,並得到一個問題嗎? –

回答

3

是的,你的模式是正確的。

的貓鼬嵌套模式(子文檔)的文檔,可以發現here

+0

謝謝!是的,但我沒有發現任何關於嵌套模式驗證.. –

+0

子文檔工作相同的常規文件,唯一的區別是你如何訪問他們 –

+0

顯然,子文件只有在運行'save() '在母文件上。如果你在父文件中運行了任何'update',子文件將不會被驗證。看看這種情況:https://github.com/Automattic/mongoose/issues/5234和:http://mongoosejs.com/docs/validation.html - >「驗證是中間件,Mongoose將驗證註冊爲pre ('保存')鉤在每個模式默認情況下。「。但是,「您可以使用doc.validate(callback)或doc.validateSync()手動運行驗證」 – maganap

0

您可以使用嵌套模式中貓鼬。

它也會給你他對每個子模式值的對象ID。

0

我想你會類型的用戶模型的子文檔更新eventSchema。 您可以使用{ runValidators: true}進行更新。

eventModel.update({ name: 'YOUR NAME' }, { $push: { host: user } }, { runValidators: true}, function(err) { 

})