我正在开发一个具有电影,放映会和电影院的应用程序。会话同时连接电影和电影院。例如。 17:00的会话会将电影《毒液》连接到乡村电影院
模式摘要如下
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);
}
是否有更好的方法来执行代码,以便通过在DB级别上构成已过滤的对象来避免for..of循环?
我还计划使用querymen,当用猫鼬查询JS代码中的哪些过滤数据时,这是最好的选择。
任何帮助将不胜感激