2016-04-07 71 views
0

我遇到了一個問題,試圖在查詢中訪問_id`_id`在where子句中

我的架構:

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

我的查詢:

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是不確定的,我也試試,但this._id查詢返回NULL。 我只想從testSchema獲得testSchema文檔中的test2id = _id的所有文檔。

任何想法解決這個問題,並從query.where條款訪問_id

+0

從這兩個集合中發佈您的'TestSchema''Test2'模式和一個文檔示例。 –

+0

@SiddharthAjmera:我編輯我的帖子更加清晰。 – Thomi

回答

0

我最終通過傳遞參數來解決它。

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