Как сделать подзапрос (или присоединиться) в GraphQl?
Я пытаюсь обернуть голову вокруг GraphQl, точнее, по подзапросам.
У меня есть две таблицы: "Продукты" и "Нравится", две имеют общий столбец "userId". Как можно подсчитать общее количество лайков для каждого продукта из таблицы лайков на основе общего столбца?
схема:
import { makeExecutableSchema } from 'graphql-tools';
import resolvers from './resolvers';
const schema = `
type Products {
id: Int!
name: String
userid: String
}
type Likes {
id: Int!
userid: String
}
# the schema allows the following query:
type Query {
products: [Products]
}
`;
export default makeExecutableSchema({
typeDefs: schema,
resolvers,
});
распознаватель:
import { Products, Likes } from './connection.js';
const resolveFunctions = {
Query: {
likes() {
return Likes.findAll();
},
products() {
return Products.findAll();
},
},
};
export default resolveFunctions;
connection.js
...
const Products = db.define('products', {
id: {
type: Sequelize.INTEGER,
primaryKey: true
},
name: Sequelize.STRING,
userid: Sequelize.STRING,
title: Sequelize.STRING,
},
{
timestamps: false
}
);
const Likes = db.define('likes', {
id: {
type: Sequelize.INTEGER,
primaryKey: true
},
userid: Sequelize.STRING
},
{
timestamps: false
}
);
export { Products, Likes };