Как ограничить глубокую популяцию в мангусте-самонаселении - PullRequest
0 голосов
/ 06 июня 2018

Я использую мангуста-автопопуляция пакет в минуту.В одном запросе я хочу глубоко заполнить, а в другом запросе я хочу заполнить до одного уровня.Вот моя схема, которая глубоко заполняет данные.

 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' } 
}); 

Это мой запрос, в котором я пытаюсь отключить автоматическое заполнение.функция, так как я не хочу глубокое заполнение, вместо этого я хочу заполнить дочернюю схему только до 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 из запроса.Любая помощь высоко ценится.

...