2016-04-03 40 views
0

我正在使用猫鼬版本4.4.10这里是我的模式的细节。如何正确使用填充来链接猫鼬中的2个集合?

var RespSchema = new mongoose.Schema({ 
    surveyResponseId : {type: mongoose.Schema.Types.ObjectId, 
        ref: 'SurveySResponsechema', 
        required: true, 
        index : true}, 
    customerSurveyId : {type: mongoose.Schema.Types.ObjectId, 
        ref: 'CustomerSurveySchema', 
        required: true, 
        index : true}, 
    version  : Number, 
    question  : Number, 
    responseType : String, // single or multiple-choice not implemented 
    response  : [String], 
    responseNum : [Number], 
    created_dt : { type: Date, default: Date.now } 

var SurveyResponseSchema = new mongoose.Schema({ 
customerSurveyId : {type: mongoose.Schema.Types.ObjectId, 
        ref: 'CustomerSurveySchema', 
        required: true, 
        index : true}, 
deviceId : String, // whch Android Tableet is runing this 
version  : Number, 
taken  : Boolean, 
created_dt : { type: Date, default: Date.now } 
}); 

mongoose.model('SurveyResponse', SurveyResponseSchema); 
mongoose.model('Resp', RespSchema); 


var Resp = mongoose.model('Resp'); 
var SurveyResponse = mongoose.model('SurveyResponse'); 

Resp.find({created_dt: {"$gt": new Date("2016-03-31T09:20:00Z")}}) 
    .sort('customerSurveyId') 
    .populate('SurveyResponse') 
    .exec(function(err, results) { 

    if (err) return err; 
    console.log('results is:', JSON.stringify(results)); 
}); 

在下面发现我不能够进入电影SurveyResponse的收集结果结果的一部分 我只得到RESP集合的结果。

回答

1

请尝试.populate('surveyResponseId')代替.populate('SurveyResponse')

和,是SurveySResponsechema错字?
也许它应该是SurveyResponse

+0

应该填充集合的名称还是集合在一起的键?这也没有用。我没有包括模式与架构不同。 mongoose.model('SurveyResponse',SurveyResponseSchema); –