如何从2个集合,nodejs和mongodb获取关系信息

时间:2018-05-24 10:31:36

标签: javascript node.js mongodb javascript-objects

我有2个模式(事件,地点)
事件架构如下所示:

var mongoose = require('mongoose');
var bcrypt = require('bcryptjs');
var EventSchema = mongoose.Schema({
  _id:mongoose.Schema.Types.ObjectId,
  name:{type:String,unique:true},
  venue:[{type:mongoose.Schema.Types.ObjectId, ref:'venue'}],
  status:{type:Number, default:0}
});

var Event = module.exports = mongoose.model('Event', EventSchema);

场地架构如下所示:

var mongoose = require('mongoose');
var bcrypt = require('bcryptjs');
var VenueSchema = mongoose.Schema({
  _id:mongoose.Schema.Types.ObjectId,
  name:{type:String,unique:true},
  status:{type:Number,default:0}
});
var Venue = module.exports = mongoose.model('Venue', VenueSchema);


我需要输出内容如下所示:

[{
  event :{
     _id:
     name:
     venue:[{
       _id:
       name:
     }]
  }
}]

请帮我引用模式或nodejs代码中的更改,以便用一对多关系填充相同内容。

1 个答案:

答案 0 :(得分:0)

您可以使用Populate实现此目的。

    Events.
      findOne({ name: 'Casino Royale' }).
      populate('venue').
      exec(function (err, eventsData) {
        if (err) return handleError(err);
        console.log('Your data', eventsData);
      });