where子句中的`_id`

时间:2016-04-07 12:16:31

标签: mongodb mongoose

我在查询中试图访问_id时遇到问题。

我的架构:

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获取test2id = _id文档testSchema的所有文档。

是否有任何想法可以解决这个问题并从_id条款访问query.where

1 个答案:

答案 0 :(得分:0)

我最后通过在参数中传递它来解决它。

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