2017-01-12 7 views
0

쿼리 자체에 특정 필드가 포함되어있는 경우 원본 쿼리를 편집해야하는 Mongoose 후크 (사전 찾기) 작업 중입니다.Mongoose.Query 필드에 대한 액세스

그래서 기본적으로 코드는 하나와 유사한 :

MySchema.pre('find', function (next) { 
    if (this.foo) { 
     this.bar = 'something' 
    } 
} 

난 그냥이 속성을 읽을 수 없습니다, this.foo 항상 정의되지 않은, 심지어 시험을하는 경우 this instanceof Mongoose.Query true를 반환합니다.

이 인스턴스는 단지 쓰기 전용입니까, 아니면 MyModel.find(query)에 전달 된 객체를 읽을 수있는 방법이 있습니까? 이런 식으로 해결

감사

답변

1

:

MySchema.pre('find', function() { 

    const q = this.getQuery(); 
    if (q.foo) { 
     this.where('bar', 'something'); 
    } 
}