与外部API数据结合使用Mongoose模式方法?

时间:2018-12-13 23:58:47

标签: mongoose graphql

我最近一直在使用node,猫鼬和apollo服务器,并一直在开发这个相当简单的应用程序。我有一个用户模型,并且我有tmdb 电影API 。我想获取电影,并且希望能够在用户上附加电影ID(反之亦然?)。我该怎么办?是否要在用户模型上添加 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',      
    },
  },

)

获取电影时,我希望每部电影都具有用户 观看的其他属性

这是我的电影类型:

  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 ,并检查数据库中是否有用户在 watchedMoviesIds 上具有相同的电影 ID ,然后返回该用户/用户履行 watchedBy

这看起来太复杂了吗?

我觉得我在这里遇到了麻烦,但只是想了解我需要访问数据库多少次,以及哪种更好的数据库模式方法。

0 个答案:

没有答案