2013-10-11 5 views
0

에 존재한다. 내가 뭘 원하는 확인하고 모델 개체가 이미 컬렉션에 존재하는지 확인하는 것입니다. 를 heres 내 모델 예를 들어몽구스,이 모델은 이미 내가 MongoDB를에 데이터를 저장하기 위해 Node.js를 서버에 몽구스를 사용하고 컬렉션

: 내가 찾는거야 큰 문제는 모델 인 tempReq은을 가지고 있습니다

var Request = mongoose.model('api-request', ApiRequest); 

function newRequest(req, type) { 
    return new Request({ 
     'route' : req.route.path, 
     'priority' : req.body.priority, 
     'maxResponseAge' : req.body.maxResponseAge, 
     'request' : getRequestByType(req, type) 
    }); 
} 

function main(req, type, callback) { 
    var tempReq = newRequest(req, type); 

    Request.findOne(tempReq, '', function (err, foundRequest) { 
     // Bla bla whatever 
     callback(err, foundRequest); 
    }); 
} 

을 여기

var ApiRequest = new Schema({ 
    route: String, 
    priority: String, 
    maxResponseAge: String, 
    status: String, 
    request: Schema.Types.Mixed, 
    timestamp: { type: Date, default: Date.now } 
}); 

그리고는 내가하고 싶은거야 _id 변수와 데이터베이스에 저장되는 것과 다른 시간 소인. 그래서 나는 그 들판을 무시하고 다른 모든 것들과 비교하고 싶습니다. 내 실제 모델은 내가 .find 사용하지 않으려는이 때문에 이유보다 더 많은 변수를 참고로

({PARAM : 발은 ....}) ..... 대신 사용하고 싶습니다 비교를위한 기존 모델.

아이디어가 있으십니까? 감사!

답변

1

당신은 쿼리 개체로 일반 JS 객체 대신 몽구스 모델 인스턴스 (find 첫 번째 매개 변수)를 사용합니다.

그래서 중 하나

변경 newRequest은 일반 객체를 반환하고 나중에 데이터베이스에 추가해야하는 경우 new Request() 전화로 그를 전달합니다.

또는이 같은 쿼리 객체로 당신의 main 기능 차례 tempReq에서

:

var query = tempReq.toObject(); 
delete query._id; 
Request.findOne(query, ... 
관련 문제