2016-04-07 18 views
0

Ich habe ein Problem beim Zugriff auf _id in einer Abfrage.`_id` in Where-Klausel

Mein Schema:

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

Meine Frage:

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 nicht definiert ist, versuche ich auch this._id aber die Abfrage null zurück. Ich möchte nur alle Dokumente von testSchema mit test2id = _id des Dokuments testSchema erhalten.

Irgendeine Idee, das zu beheben und Zugang zu _id von einer query.where Klausel?

+0

Veröffentlichen Sie Ihr 'TestSchema'' Test2'-Schema und ein Dokumentbeispiel aus diesen beiden Sammlungen. –

+0

@SiddharthAjmera: Ich habe meinen Beitrag bearbeitet, um klarer zu sein. – Thomi

Antwort

0

Ich schließe es schließlich durch Übergabe in Parameter.

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