В последнее время я играл с node, mongoose и apollo-server и работал над этим довольно простым приложением.У меня пользовательская модель , и у меня есть tmdb фильмы API .Я хочу получить фильмы и иметь возможность прикрепить идентификатор фильма на пользователь (или наоборот?).Как мне это сделать?Добавить watchedMovieIds на пользовательскую модель или создать новую, например, модель фильма , ссылающуюся пользователь ?
Модель пользователя:
const userSchema = new Schema(
{
email: { type: String, required: true, unique: true, trim: true },
// watchedMovieIds: [{type: Number}]
},
)
Прикрепить ли watchedMovieIds к пользователю?или создать новую модель со ссылкой?
const movieSchema = new Schema(
{
watchedMovieId: {type: Number}
user: {
type: mongoose.Schema.Types.ObjectId,
ref: 'user',
},
},
)
Когда я выбираю фильмы, я хочу, чтобы у каждого фильма было дополнительное свойство watchedBy с пользователями
Вот мой тип фильма:
type Movie {
id: ID
vote_count: Int
genre_ids: [ID]
image_url: String
title: String
vote_average: String
release_date: String
watchedBy: [User]! // all properties comes from movieAPI except watchedBy
}
Кажется, мне нужно:
- выбрать фильмы (20 фильмов за один раз)
- проверить каждый фильм ID и проверьте базу данных, есть ли пользователь с таким же фильмом ID на watchedMoviesIds , а затем верните пользователя / пользователей для выполнения watchedBy
Это выглядит слишком сложно?
Я чувствую, что немного спускаюсь по кроличьей норе, но просто пытаюсь понять, сколько раз мне нужно попасть в базу данных икакой подход лучше для схемы базы данных.