2012-11-19 4 views
0

특정 기준과 일치하는 많은 문서를 업데이트 (또는 삭제)하고 실제로 업데이트/삭제 된 문서 (또는 해당 문서의 다른 필드)의 ID 목록을 가져 오는 방법이 있습니까? 이 작업을 위해 원 자성이 필요하기 때문에 미리 기준에 맞는 문서를 쿼리 할 수는 없습니다. 왕복 때문에 너무 느린 한 번에 한 문서 만 처리 할 수 ​​있기 때문에 findAndModify를 사용할 수 없습니다. 제안?업데이트 된 문서 목록

답변

0

MongoDB는 단일 문서에 대해서만 원자 연산을 지원합니다.

첫 번째 쿼리 우리의 쿼리의 id를 찾을 수있는 모음 :이 작업을 수행 할 수있는 유일한 방법
http://www.mongodb.org/display/DOCS/Atomic+Operations

당신이 하나를하지 않았다 일을하는 것입니다

db.things.find({"name":"john"}, {_id:1}); 

그런 다음, 동일한 검색어를 사용하여 제거 :

db.things.remove({"name":"john"}, {_id:1}); 

이상하지 않고 원자로는 아니지만이 장면에 들어가기에 충분합니다. 리오.

+0

아니요, 원 자성은 나에게 매우 중요합니다. 따라서 다른 솔루션이 없다면 findAndModify를 사용하는 것이 좋습니다. 반환 된 ID가 실제로 업데이트/제거 된 문서에 정확히 일치 하는지를 반드시 확인해야합니다. 보시다시피, 나는 읽기/업데이트 작업 쌍에 대한 원 자성을 의미하며 전체 업데이트를 의미하지는 않습니다. –

+0

원 자성이 정말로 중요하다면 아마도 RDBMS를 사용하는 것이 더 나을 것입니다. 다른 코스에 다른 말입니다. – Alex

관련 문제