如何在猫鼬中过滤多个集合?

时间:2018-10-23 05:49:17

标签: javascript node.js mongoose restful-url

我正在开发一个具有电影,放映会和电影院的应用程序。会话同时连接电影和电影院。例如。 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代码中的哪些过滤数据时,这是最好的选择。

任何帮助将不胜感激

0 个答案:

没有答案