Skip to content
Snippets Groups Projects

Movie page

Merged Bilel El Yaagoubi requested to merge movie-page into master

Files

+ 51
0
 
const mongoose = require("mongoose");
 
 
const MovieSchema = new mongoose.Schema(
 
{
 
adult: { type: Boolean },
 
backdrop_path: { type: String },
 
genre_ids: [Number],
 
id: { type: Number, required: true, unique: true },
 
original_language: { type: String },
 
original_title: { type: String },
 
overview: { type: String },
 
popularity: { type: Number },
 
poster_path: { type: String },
 
release_date: { type: Date },
 
title: { type: String },
 
video: { type: Boolean },
 
vote_average: { type: Number },
 
vote_count: { type: Number },
 
cast: { type: Array },
 
},
 
{
 
toJSON: { virtuals: true }, // So `res.json()` and other `JSON.stringify()` functions include virtuals
 
toObject: { virtuals: true }, // So `console.log()` and other functions that use `toObject()` include virtuals
 
}
 
);
 
 
MovieSchema.virtual("liking_users", {
 
ref: "UserModel",
 
localField: "_id", // The user _id should match the viewers field in movies
 
foreignField: "liked_movies",
 
});
 
 
MovieSchema.virtual("later_watchers", {
 
ref: "UserModel",
 
localField: "_id", // The user _id should match the viewers field in movies
 
foreignField: "to_see_later",
 
});
 
 
MovieSchema.virtual("masking_users", {
 
ref: "UserModel",
 
localField: "_id", // The user _id should match the viewers field in movies
 
foreignField: "masked_movies",
 
});
 
 
const MovieModel = mongoose.model(
 
"MovieModel",
 
MovieSchema,
 
"movies_populated"
 
);
 
 
module.exports = MovieModel;
Loading