我正在使用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。 任何帮助都非常感谢。