为什么用这种方式devisemongoose?

我是新来的mongoose,
如果我想定义一个模型,我可以使用下面的代码:

var ArticleSchema = new Schema({ _id: ObjectId, title: String, content: String, time: { type: Date, default: Date.now } }); var ArticleModel = mongoose.model("Article", ArticleSchema); 

但为什么不是这样的代码:

 var ArticleModel = new Model({ // properties }); 

为什么用这种方式devisemongoose? 有什么情况可以重复使用“ArticleSchema”吗?

它的devise方式使您可以为子文档定义模式,而不映射到不同的模型。 请记住,集合和模型之间存在一对一的关系。

来自Mongoose网站 :

 var Comments = new Schema({ title : String , body : String , date : Date }); var BlogPost = new Schema({ author : ObjectId , title : String , body : String , buf : Buffer , date : Date , comments : [Comments] , meta : { votes : Number , favs : Number } }); var Post = mongoose.model('BlogPost', BlogPost); 

是的,有时我把Schema分成不同的文件,做这种事情。

 // db.js var ArticleSchema = require("./ArticleSchema"); mongoose.Model("Article", ArticleSchema); 

只有当你在模型上有一堆静态和其他方法,并且主模型文件变得混乱时,它才会非常有用。

Interesting Posts