2011-12-25 5 views
5

컬렉션의 모든 기존 문서에서 단일 요소를 업데이트하기 위해 다음 쿼리를 실행하고 있습니다. 기본적으로 "0"값을 지우려고합니다.MongoDB 컬렉션의 모든 문서에서 요소 업데이트

MongoCollection collection = db.GetCollection(DataAccessConfiguration.Settings.CollectionName); 
var query = Query.Exists("ElementName", true); 
var update = Update.Set("ElementName", "0"); 
collection.Update(query, update); 

그것은 단지 하나의 문서를 업데이트 : 여기

는 코드입니다.

모두를 개 요소로 한 번에 업데이트 할 수 있습니까?

답변

6

MongoDB의 업데이트는 기본적으로 0 또는 1 개의 문서에 영향을줍니다 (쿼리 지정자가 아무것도 일치하지 않는 경우에만 0). 모든 문서를 업데이트하려면 UpdateFlags.Multi을 세 번째 인수 Update으로 전달해야합니다. 또한 "안전 모드"플래그를 네 번째 인수로 허용하는 Update의 4 인수 버전이 있습니다.

(안전 모드 업데이트와 getLastError 명령을 번들하고 서버가 쓰기에 성공했음을 인정 될 때까지 기다려야 드라이버를 발생합니다. 당신이 사용하는 경우 여러 서버의 승인을 기다립니다 안전 모드에 대한 다양한 옵션이 있습니다 특정 시간 동안 만 대기 한 다음 오류와 함께 반환하는 복제 세트 등).

API에 대한 자세한 내용은 see the C# driver documentation도 확인하십시오.

+0

내가 필요한 것. 'UpdateFlags.Multi' 인수가 없습니다. – agarcian

관련 문제