超过2级的猫鼬人口

时间:2014-11-27 06:04:40

标签: node.js mongodb mongoose

我正在尝试使用mongoose populate来返回一个复合文档。类别和问题可以很好地扩展。问题中的答案数组未展开。这就是我一直在做的事情

summarySchema.statics.loadFull = function(options, callback){
    var self = this;
    self.findOne(options).populate([{
        path: 'categories'
    }])
    .exec(function(err, res){
        if(err || !res) return callback(err, res);
        self.populate(res, [{
            path: 'categories.questions',
            model: 'Question'
        }], function(err, res){
            if(err || !res || !res.length) return callback(err, res);
            self.populate(res, [{
                path : 'categories.questions.answers',
                model: 'Answer'
            }], function(err, res){
                callback(err, res);
            });
        });
    });
};

我犯的是明显的错误,或者猫鼬不支持2个以上的人口。

仅供参考,结构就像

summary {categories : [{type: mongoose.Schema.Types.ObjectId, ref: 'Category'}]}
category {questions : [{type: mongoose.Schema.Types.ObjectId, ref: 'Question'}]}
question {answers : [{type: mongoose.Schema.Types.ObjectId, ref: 'Answer'}]}

1 个答案:

答案 0 :(得分:0)

我犯了一个愚蠢的错误,除非你看到返回的数据,否则可能并不明显。我不应该检查不是数组或字符串的对象的长度。我把返回值弄糊涂了。 :)