Как добавить связь в GraphQL-Compose (пн goose) - PullRequest
0 голосов
/ 29 января 2020

Мой запрос возвращает ноль для полей, которые должны быть извлечены из реляционного объекта.

У меня есть две модели в отдельных файлах, Track и User. Я создаю свои запросы и мутации в третьем файле.

Track. js экспортирует модель mon goose с именем "Track".

В моей модели User есть поле с именем "track", которое имеет вид {type: Schema.Types.ObjectId, ref : "Track"}

Я создаю TrackT C в моем файле compose. js, где я создаю свои мутации и запросы.

Я запутался, потому что мой запрос выдает ошибки, когда Я называю поля, которых нет в модели Track; однако действительные поля возвращают ноль.

Там у меня есть следующий код для создания отношения, который, я думаю, может быть источником моей ошибки.

Спасибо за любые советы или подсказки !!

// ADD RELATION
UserTC.addRelation(
  'track',
  () => ({
    resolver: TrackTC.getResolver('findByIds'),
    prepareArgs: {
      _ids: source => source.tracks
    },
  })
)

// USER MODEL
const mongoose = require("mongoose");
const bcrypt = require("mongoose-bcrypt");
const { Schema } = mongoose;
const { Track, TrackSchema } = require("./track");

const UserSchema = new Schema({
  name: String,
  email: String,
  password: {
    type: String,
    bcrypt: true
  },
  userType: {
    type: String,
    default: "user"
  },
  tracks: [
    {
      type: Schema.Types.ObjectId,
      ref: "Track"
    }
  ]
});

UserSchema.plugin(bcrypt);

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

module.exports = { User, UserSchema };

// TRACK MODEL
const mongoose = require("mongoose");
const { Schema } = mongoose

const TrackSchema = new Schema({
  title: String,
  description: String
});

const Track = mongoose.model("Track", TrackSchema);

module.exports = {Track, TrackSchema}
...