Я создаю сервер GraphQL, который использует Mongoose и GraphQLInterfaceType. У меня есть GraphQLInterfaceType для книг и подтипы SchoolBooksType и ColoringBookType. в моей схеме Mongoose я указал, что и SchoolBook, и ColoringBooks должны храниться в одной коллекции книг
const coloringSchema = new Schema({
title: String,//Interface
pages: String
});
module.exports = mongoose.model("ColoringBook", coloringSchema , "books");
const schoolSchema = new Schema({
title: String, //Interface
subject: String
});
module.exports = mongoose.model("SchoolBook", schoolSchema , "books");
Вот один из моих типов
const SchoolBookType = new GraphQLObjectType({
name: "SchoolBook",
interfaces: [BooksInterface],
isTypeOf: obj => obj instanceof SchoolBook,
fields: () => ({
title: { type: GraphQLString },
subject: { type: GraphQLString }
})
});
Вот мой запрос: Но я не знаю, что вернуть, если мне нужно объединить две коллекции в один массив?
books: {
type: new GraphQLList(BooksInterface),
resolve() {
return SchoolBook.find({}) //<---- What to return?
}
}
Вот мой запрос:
{
books{
title
... on ColoringBook{
pages
}
... on SchoolBook{
subject
}
}
}
Любая помощь была бы отличной, Спасибо.