Подход схемы Mongoose при объединении с внешними данными API? - PullRequest
0 голосов
/ 14 декабря 2018

В последнее время я играл с 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

Это выглядит слишком сложно?

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...