2014-09-18 6 views
2

에있는 경우이 문서가 존재하는 경우 내가 확인하는 방법입니다 문서의 갱신.확인 문서가 MongoDB를

예. 나는이 문서를 업데이트하고 그것을 다른 이름

{ 
    name: 'Foo', 
    sapId: 123456, 
    id: '541ab60f07a955f447a315e4' 
} 

을주고 싶어하지만 채권자 변수를 로그인 할 때 나는이 얻을 :

[{ 
    _id: 541a89a9bcf55f5a45c6b648, 
    name: 'Bar', 
    sapId: 3454345 
}] 

을하지만 쿼리는 같은 흥미있는/이름과 일치해야합니다. 그러나 완전히 같은 것은 아닙니다. 내 질문이 잘못 되었나요?

답변

2

name과 일치하는 문서가 sapId이거나 _id과 일치하지 않는 문서를 찾고 있습니다. 그래서 마지막 절은 여러분이보고있는 의사를 끌어들이는 것입니다.

당신은 아마 일치하지 않는 경우 문서 (name 일치 또는 sapId 경기) _id을 찾는 것을 의미한다.

collection.find({ $and: [ 
    query, 
    { $or: [{ 
      name: req.body.name 
     }, { 
      sapId: req.body.sapId 
     } 
    ] } ] 
}) 

또는 단순히 더 :

collection.find({ 
    _id: { $ne: require('mongodb').ObjectID.createFromHexString(req.body.id) }, 
    $or: [{ 
      name: req.body.name 
     }, { 
      sapId: req.body.sapId 
     } 
    ] 
}) 
+0

하나는 당신이 첫 번째 예는 나를 위해 작동 감사합니다. –