如何限制mongoose-autopopulate的深度种群

时间:2018-06-06 09:05:11

标签: mongoose mongoose-schema mongoose-populate auto-populate

我正在使用mongoose-autopopulate npm包。 在一个查询中,我想深入填充,在另一个查询中,我想填充到一个级别。 这是我的架构,它深入填充数据。

 ChildSchema = new Schema({
    plugin_id: { type: String }, 
    title: { type: String }, //card title
    text: { type: String },
    is_valid: { type: Boolean,require:true, default:  false},
    children: [{ type: Schema.Types.ObjectId, ref: 'Child', autopopulate: true }]
});

ChildSchema.plugin(autopopulate);
module.exports = mongoose.model('Child', ChildSchema);

这是聊天记录架构:

ChatHistorySchema = new Schema({
    type:{ type:Number }, 
    bot_response:{ type: Schema.Types.ObjectId, ref: 'Child' } 
}); 

这是我的查询,其中我试图禁用自动填充功能,因为我不想要深度填充,而是我想将Child模式仅填充到1级。

    //query 
  ChatHistory.find({ "bot_user": req.params.botuserId }, {}, {autopopulate: false})
   .populate({
      path: 'bot_response',
      model: 'Child'
   })
   .exec((err,result) => {
    if (err) {
      res.status(500).send({ error: 'Something failed!' })
      deferred.reject(err)
    } else {
      res.json(result)
      deferred.resolve(result);
    }
  })

此查询仍然返回深度填充的数据。

我不确定如何从查询中控制maxDepth。 任何帮助都非常感谢。

0 个答案:

没有答案