2

我正试图围绕 GraphQl,更准确地说是子查询。

我有两个表:Products 和 Likes,这两个表有一个共同的“userId”列。如何根据 common 列从 Likes 表中计算每个产品的总喜欢数?

架构:

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;

连接.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 };
4

0 回答 0