如何将mongodb查询的结果用作下一个查询的值?

时间:2019-09-30 00:44:22

标签: javascript node.js mongodb mongoose

我正在尝试使用我的用户收藏夹的第一个查询来搜索我的房间集合,以获得有关每个喜欢的房间的特定信息。但是,当我尝试执行我认为是正确的方法时,我将返回未定义状态。我可以在mongoDB地图集仪表板中看到对象在那里。

这是我当前的get函数以及两个集合模型。

// Get favorties
router.get('/favorite', ensureAthnticated, function(req, res){
  Favorite.find({user:req.user._id}, function(err, favorites){
    console.log(favorites.room);
    Room.find({_id:favorites.room}, function(err, rooms){
      if(err){
        console.log(err);
      } else {
        // console.log(rooms);
        res.render('favorites', {
          rooms: rooms
        });
      }
    });
  });
});
const mongoose = require('mongoose');

// favorite Schema
let favoriteSchema = mongoose.Schema({
  room:{
    type: String,
    required: true
  },
  user:{
    type: String,
    required: true
  }
});

let Favorite = module.exports = mongoose.model('Favorite', favoriteSchema);
const mongoose = require('mongoose');

// Room Schema
let roomSchema = mongoose.Schema({
  title:{
    type: String,
    required: true
  },
  author:{
    type: String,
    required: true
  },
  price:{
    type: Number,
    required: true
  },
  available:{
    type: String,
    required: true
  },
  sex:{
    type: String,
    required: true
  },
  sharingPreferences:{
    type: String,
    required: true
  },
  petsAllowed:{
    type: String,
    required: true
  },
  description:{
    type: String,
    required: false
  }
});

let Room = module.exports = mongoose.model('Room', roomSchema);

我想从当前登录的用户中找到收藏夹集合中的所有房间,然后使用这些结果获取实际房间及其信息。

0 个答案:

没有答案