Как сделать подзапрос (или присоединиться) в 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 };

0 ответов

Другие вопросы по тегам