2011-03-28 5 views
0

단순히 Name 및 Count 속성이있는 MongoDB (ErrorTypeOccurences)에 문서 유형이 있습니다. 예외가 기록 될 때마다 (응용 프로그램 오류 유형에 대해보고 할 수 있도록) Count 특성을 증가/감소시킵니다. 업데이트를 위해 $ inc 수정자를 사용하여 upsert를 수행하는 방법을 발견했습니다. 그러나 감소 된 값이 같으면 문서를 삭제하는 감소 작업을 수행하는 깨끗한 방법을 찾아 내기 위해 애 쓰고 있습니다. 0 (해당 유형의 오류 로그가 더 이상 존재하지 않으므로).MongoDB에서 "0 일 때 감소 및 삭제"수행 방법

분명히 감소 작업을 수행 한 다음 Count가 0 인 모든 오류 문서를 제거 할 수 있지만이 작업은 서버에서 완전하게 수행해야합니다. findAndModifiy는 유망 해 보였습니다. 그러나 감소 카운트가 0 인 경우 감소 업데이트를 수행 한 다음 조건부로 레코드를 제거하는 방법을 알 수 없습니다.

표준 작업으로이 작업을 수행 할 수 있습니까? 아니면 서버 측 함수를 작성해야합니까?

저는 C#/NoRM을 사용하고 있습니다. 따라서이를 사용하는 예제는 훌륭하지만 꼭 필요한 것은 아닙니다. 감사.

답변

1

두 가지 작업을 수행해야합니다. MongoDB에는 트랜잭션 지원이 없으므로 조작이 일반적으로 성공할 것이라고 보증 할 수 없습니다. 응용 프로그램 레벨에 대한 추가 검사가 추가되어야합니다.

+0

서버 쪽 기능이 좋은 옵션이 될 것인가 아니면 응용 프로그램 수준에서 수행되어야합니까? –

+0

뭐라 구요? –

0

내가 아는 한, 당신은 당신이 상자에서 요구하는 것을 할 수 없습니다. 정말로 두 가지 업데이트를 수행하려고합니다. 이것은 서버 측 기능이 작동하는 것입니다. 스토어드 프로 시저와 매우 유사한 Javascript 기능을 저장할 수 있습니다.

관련 문제