4

私はマングースが初めてです
。モデルを定義したい場合は、次を使用できます。

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
});

なぜマングースはこのように設計されたのですか? 「ArticleSchema」を再利用できる状況はありますか?

4

2 に答える 2

9

個別のモデルにマップされないサブドキュメントのスキーマを定義できるように、そのように設計されています。コレクションとモデルの間には 1 対 1 の関係があることに注意してください。

マングースのウェブサイトから:

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);
于 2012-04-11T19:07:51.480 に答える
4

ええ、スキーマを別々のファイルに分割して、このようなことをすることがあります。

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

モデルに多数の静的メソッドやその他のメソッドがあり、メインのモデル ファイルが乱雑になる場合にのみ、これは非常に役立ちます。

于 2012-04-11T15:12:39.783 に答える