Я занимаюсь разработкой приложения, в котором есть фильмы, шоу-сеансы и кинотеатры.Сессия соединяет как фильмы, так и кинотеатры.Например, сеанс в 17:00 соединит фильм Venom с деревенскими кинотеатрами
. Схема выглядит следующим образом:
const movieSchema = new Schema({
title: String,
language: String,
})
let cinemaSchema = new Schema({
state:String,
location: String,
website: String})
let sessionSchema = new Schema({
movie: {
type: mongoose.Schema.ObjectId,
ref: "Movie"
},
cinema: {
type: mongoose.Schema.ObjectId,
ref: "Cinema"
},
sessionDateTime: {
type: [Date],
required: "Session must have a date and time "
},
ticketLink: String})
Я представляю данные, по которым клиент будет получать активные сеансы вместес фильмами, основанными на названии фильма Например, http://localhost:50000/api/v1/movies/getSessions?title=Venom
Мой код для создания возвращаемых объектов фильма выглядит следующим образом:
let movies = await Movie.find({title:"Venom"})
.limit(3)
.skip(0);
let movieSessions=[]
for (const movie of movies) {
const sessions = await Session.find({
movie: movie._id
}).populate("cinema");
const movieSession = { ...movie._doc, sessions };
movieSessions.push(movieSession);
}
Есть ли лучший способ выполнить код так, чтобыя избегаю цикла for..of путем создания фильтруемого объекта на уровне БД?
Также я планирую использовать querymen, который лучше всего использовать при запросах с mongoose, какие данные фильтрации в коде JS.
Любая помощь будет оценена