Mongoose:模式中的重复对象

时间:2015-07-21 08:52:55

标签: mongodb mongoose nosql

我在mongoose中定义我的架构,我有一个书籍对象数组,然后是一本活跃的书"。现在设置它不是一个问题,但这似乎是不必要的重复,以在模式的两个不同部分中定义完全相同的书对象。

 var BookSchema   = new Schema({
    activeBook: {
        id: String,
        title: String,
        author: String,
        pages: Number
    },
    books: [{
        id: String,
        title: String,
        author: String,
        pages: Number
    }]
});

是否有一种更清晰的写作方式,所以我不必在任何地方写出相同的对象?

1 个答案:

答案 0 :(得分:1)

更简洁的方法是创建一个 subdocument ,一个带有自己架构的文档,这些文档是父文档数组的元素。因此,在上面的示例中,您可以按如下方式定义子/父模式:

var ChildSchema = new Schema({
    id: String,
    title: String,
    author: String,
    pages: Number
});

var ParentSchema = new Schema({
    activeBook: ChildSchema,
    books: [ChildSchema]
});