我在mongoose中定义我的架构,我有一个书籍对象数组,然后是一本活跃的书"。现在设置它不是一个问题,但这似乎是不必要的重复,以在模式的两个不同部分中定义完全相同的书对象。
var BookSchema = new Schema({
activeBook: {
id: String,
title: String,
author: String,
pages: Number
},
books: [{
id: String,
title: String,
author: String,
pages: Number
}]
});
是否有一种更清晰的写作方式,所以我不必在任何地方写出相同的对象?
答案 0 :(得分:1)
更简洁的方法是创建一个 subdocument ,一个带有自己架构的文档,这些文档是父文档数组的元素。因此,在上面的示例中,您可以按如下方式定义子/父模式:
var ChildSchema = new Schema({
id: String,
title: String,
author: String,
pages: Number
});
var ParentSchema = new Schema({
activeBook: ChildSchema,
books: [ChildSchema]
});