填充在mongoose中填充

时间:2016-02-23 14:01:06

标签: mongodb mongoose

我想在populate中创建一个填充

我的架构看起来像

 //item schema        
 item {
      name : String,
      type : { type: mongoose.Schema.Types.ObjectId, ref: 'item_types' },
      box : { type: mongoose.Schema.Types.ObjectId, ref: 'box' }, 
   }
//box schema
box{
    name : String,
    department : [{ type: mongoose.Schema.Types.ObjectId, ref: 'departments' }],
    type : [{ type: mongoose.Schema.Types.ObjectId, ref: 'types' }]
    manufacturer : { type: mongoose.Schema.Types.ObjectId, ref: 'manufacturers' },
  }
//departments schema
 departments{
         name : String
  }

 //types schema
 types{
         name : String
  }
 //item_types schema
 item_types{
         name : String
  }

当我打电话时

item 
    .find()
    .populate('type ', 'name')
    .populate('box ', 'name')
     .exec(function (err, item) {}

它的工作完美。但是,当我这样打电话时,它不会填充数据只显示ID

      item 
    .find()
    .populate('type ', 'name')
    .populate('box ', 'name')
    .populate('box.department ', 'name')
     .exec(function (err, item) {}

如何做到这一点?

提前致谢 Babji

1 个答案:

答案 0 :(得分:0)

我强烈推荐使用Mongoose插件&mongoose-deep-populate'。我在很多项目中都使用它,它可以轻松地处理这个问题。

使用示例和文档:https://github.com/buunguyen/mongoose-deep-populate/blob/master/README.md