Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb Mongoose:模式中的重复对象_Mongodb_Mongoose_Nosql - Fatal编程技术网

Mongodb Mongoose:模式中的重复对象

Mongodb Mongoose:模式中的重复对象,mongodb,mongoose,nosql,Mongodb,Mongoose,Nosql,我在mongoose中定义我的模式,我有一个book对象数组,然后是一个“活动book”。现在设置它并不是一个问题,但在模式的两个不同部分中定义完全相同的book对象似乎是不必要的重复 var BookSchema = new Schema({ activeBook: { id: String, title: String, author: String, pages: Number }, books:

我在mongoose中定义我的模式,我有一个book对象数组,然后是一个“活动book”。现在设置它并不是一个问题,但在模式的两个不同部分中定义完全相同的book对象似乎是不必要的重复

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

有没有一种更简洁的方法来编写它,这样我就不必在使用它的任何地方都写出相同的对象?

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

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

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