Это моя схема, а в MongoDB у меня есть отдельные коллекции для пользователей, событий и фильмов из-за большого количества событий и фильмов:
type Event {
id: ID!
title: String!
description: String!
creator: User!
}
type Movie {
id: ID!
title: String!
releaseDate: String
}
type MovieStatus {
movie: Movie
status: StatusEnum // WATCHED, PLANNING_TO_WATCH
}
type User {
id: ID!
firstName: String!
createdEvents: [Event!]
movies: [MovieStatus!]
}
И я хочу создать следующий запрос:
query {
user(id: "12345") {
id
firstName
createdEvents{
id
title
description
}
movies{
movie {
id
title
releaseDate
}
status
}
}
}
У меня нет проблем с получением событий, включив это в мои преобразователи:
User: {
createdEvents: ({ createdEvents }) =>
Event.find({ _id: { $in: createdEvents } }),
},
Но я не могу понять, как получить доступ к идентификатору фильма, названию и датам выпуска.
@xadm - все еще новичок в этом. Не будете ли вы так любезны объяснить это?
что хранится в «фильмах»? список (идентификатор фильма + статус) ? получить список идентификаторов, найти фильмы, затем соединить результат со статусами, используя исходные пары ... вернуть массив объектов { status, movie {id, title, release} }





movies: ({ movies }) => {
return Promise.all(
movies.map(async (m) => {
const movie = m
movie.movie = await Movie.findById(movie.movie)
return movie
})
)
}
вы должны сначала решить
User.movies- массивMovieStatus