2015-11-24 130 views
1

如何在貓鼬模型模式中設置默認集合。使用基本示例,我如何在comments數組中使用默認註釋。例如如何在貓鼬嵌入式文檔模式中設置默認集合

var defaultComment = {title: 'add your first post'}

做我不喜歡這樣的定義是什麼? comments: {type:[Comments], default:defaultComment }

var Comments = new Schema({ 
    title  : String 
    , body  : String 
    , date  : Date 
}); 

var BlogPost = new Schema({ 
    author : ObjectId 
    , title  : String 
    , body  : String 
    , date  : Date 
    , comments : [Comments] 
    , meta  : { 
     votes : Number 
     , favs : Number 
    } 
}); 

mongoose.model('BlogPost', BlogPost); 

回答

0

根據用於Schemas貓鼬文檔,鍵可以指定一個default value。因此,對於你的榜樣,一個可以定義註釋的模式像這樣:

var Comments = new Schema({ 
    title  : String 
    , body  : String 
    , date  : Date 
}); 

var CommentsModel = mongoose.model("comments", Comments); 

然後,存儲您的默認評論,在你的博客帖子架構使用它作爲默認值:

var defaultComment = new CommentsModel({ 
    title: "Add your first post" 
}); 

var BlogPost = new Schema({ 
    author : ObjectId 
    , title  : String 
    , body  : String 
    , date  : Date 
    , comments : { type: [Comments], default: defaultComment } 
    , meta  : { 
     votes : Number 
     , favs : Number 
    } 
}); 

我希望這幫助。乾杯!

+0

不行'var CommentsModel = mongoose.model(「comments」,Comments);'在mongodb中創建一個名爲comments的新集合,而不是推斷它是嵌入式集合? – MonkeyBonkey

+0

不,沒有在'defaultComment'文件上顯式執行保存操作。在這個例子中,無論何時創建一個新的BlogPost文檔,comments數組都會自動填充一個嵌入式defaultComment文檔的實例,而不會創建一個「comments」集合。 – tylercasson