GraphQL отношение один ко многим - PullRequest
0 голосов
/ 16 апреля 2020

Я использую GraphQL и MongoDB. У меня есть два типа - Пользователь и Игра . Как мне установить отношение «один ко многим» от User.games до Game , поэтому я хочу, чтобы User.games содержал массив идентификаторов игр и затем с помощью запроса, чтобы получить пользователя с массивом игр? Как я могу это сделать?

Тип пользователя и игры

type User {
    _id: String!
    username: String!
    email: String!
    password: String!
    games: [Game]
}

type Game {
    _id: String!
    name: String!
    description: String!
    imageUrl: String!
    price: Float!
}

Модель пользователя

import mongoose from "mongoose";
import Game from './Game';

const Schema = mongoose.Schema;

const UserSchema = new Schema({
    username: {
        type: String,
        required: true
    },
    email: {
        type: String,
        required: true
    },
    password: {
        type: String,
        required: true
    },
    games: {
        type: [Game.schema]
    }
});

const User = mongoose.model("User", UserSchema);

export default User;

Модель игры

import mongoose from "mongoose";

const Schema = mongoose.Schema;

const GameSchema = new Schema({
    name: {
        type: String,
        required: true
    },
    description: {
        type: String,
        required: true
    },
    imageUrl: {
        type: String,
        required: true
    },
    price: {
        type: Number,
        required: true,
    }
});

const Game = mongoose.model("Game", GameSchema);

export default Game;
...