2016-04-07 25 views
0

Bir sorguda _id erişmeye çalışırken karşılaştığım bir sorunla karşılaşıyorum.`_id 'ifadesinin bulunduğu yerde

Benim şema:

var testSchema = new Schema({ 
    test2id: [{ type: Schema.Types.ObjectId, ref: 'Test2' }], 
    test3id: [{ type: Schema.Types.ObjectId, ref: 'Test3' }] 
}); 

var test2Schema = new Schema({ 
    name: String 
}); 

var test3Schema = new Schema({ 
    name: String 
}); 

Benim sorgusu:

testSchema.statics.findByid = function (id, callback) { 
    var query = this.findOne(); 

    Test2.findOne({'name': name}, function (error, t2) { 
    query.where({ 
     test2id: _id, 
    }).exec(callback); 
    }); 
    return query 
}; 

_id tanımsız, ben de this._id deneyin ama sorgu dönüş boş. testSchema belgesindeki tüm belgeleri testSchema belgesinin test2id = _id belgesinden almak istiyorum.

Bunu düzeltmek ve _id numaralı query.where numaralı maddeden erişim hakkında herhangi bir fikriniz var mı?

+0

Her iki koleksiyondaki 'TestSchema'' Test2' şemanınızı ve bir belge örneğini gönderin. –

+0

@SiddharthAjmera: Yayımın daha açık olması için düzenledim. – Thomi

cevap

0

Sonunda bunu parametre içinde geçirerek çözerim.

var test = new Test(); 
test.findByid(test._id, req.params.id, function(err, res) { 
    ... 
});