2017-01-18 1 views
0

나는 updatemongodb{upsert:true} 옵션과 함께 사용하여 궁금해했습니다. upsertedCountmodifiedCount을 모두 0으로 설정할 수 있습니까?modifiedCount와 upsertedCount를 모두 0으로 설정할 수 있습니까?

upsertedCount은 생성 된 문서를 참조하고 modifiedCount은 업데이트 된 문서를 참조합니다.

그래서이 upsert 내가 그 모두 0

오전 내가 잘못 동일 할 것이다하는 시나리오를 찾을 수 없습니다 사용하고 계십니까?

도움을 미리 감사드립니다.

+0

업데이트 할 때 상황을 가질 수 있습니다 'upsertedCount = 0'을 올리려면 아무 것도하지 말고 기존 문서에했던 업데이트는 필드의 값을'modifiedCount = 0'을 갖기 전과 같은 값으로 수정했습니다. 그래서이 상황에서'matchedCount! = 0'을 보게 될 것입니다. – Veeram

+0

@Veeram "upsert 할 것이 없습니다"라고 말하면 문서가 이미 있다는 뜻입니까? 게다가 당신은 mongo의'update'가 실제로 관련된 값만 업데이트한다고 주장합니까? mongo가 새로운 것을 가진 문서를 단지 무시한다고 생각했습니다. 그리고 당신이 맞다고 말하면, 관련 값만 업데이트한다면, 같은 값의 필드를 업데이트하지 않을 것입니다, 그렇습니까? –

+0

* "업셋 할 항목이 없습니다"라는 말은 이미 문서가 존재한다는 뜻입니까? * 예. * 당신은 몽고의 업데이트가 실제로 관련된 값만 업데이트한다고 주장합니다. 나는 mongo가 새로운 것을 가진 문서를 단지 무시한다고 생각했다. * Mongo는 선택적인 업데이트와 교체를 가지고있다. * 당신이 맞다고 말하면 관련 값만 업데이트하면 동일한 값의 필드를 업데이트하지 않습니다. 그렇습니다. 수정 된 개수는 0이됩니다. – Veeram

답변

0

나는 당신이 당신의 가정에서 맞았다 고 생각합니다. Upsert는 기본적으로 문서를 찾을 수없는 경우 새 문서를 만드는 것을 의미합니다. 업데이트를 수행하는 동안 문서를 수정 한 경우 (modifiedCount를 1로 설정) 문서가없는 경우 (upsertCount를 1로 설정)

+0

그래서 시나리오가 없다고 주장합니다. 둘 다 0이됩니다. –

관련 문제