2014-06-17 2 views
0

매우 바쁜 상점을 위해 구매 주문 문합 모음집이 있다고 가정 해 보겠습니다. 이전 PurchaseOrders를 보관할지 여부와 관련하여 딜레마가 있습니다.몽고 및 '보관 된'문서

한편 '주'컬렉션의 이전 PurchaseOrders (12 개월 이상 된)를 다른 컬렉션으로 삭제하는 것을 고려 중입니다. 사용자가 거의 요구하지 않기 때문에 주 기능, 복제 등을 느리게 할 수 있습니다.

반면에 사용자가 오래된 데이터를 요청하는 경우가 드물기 때문에 코드가 복잡합니다. 새로운 데이터와 동일한 논리적 동작을 기대합니다. 그래서 우리는 'issueInvioce', '장바구니에 다시 추가'등과 같은 수십 가지 방법을 사용할 것입니다. 2 단계 검색을 수행해야하기 때문에 모든 것이 더 복잡해집니다 (그리고 명백한 질문에 대답하십시오 : 일부 복잡성은 일부 공통적으로 사용되는 DAO에서 우아하게 숨길 수 있지만 전부는 아닙니다.

다른 누구도이 문제에 직면 했습니까? 이 일을 돕는 mongo에 대한 트릭이나 타사 도구를 찾았습니까? 왜냐하면 많은 양의 데이터를 다룰 때 아카이빙이 매우 일반적인 요구 사항이라고 생각하기 때문입니다. 감사합니다 :)

답변

0

복잡성을 피하려면 문서 이동을 고려한 다음 필요에 따라 다시 삽입하십시오. 예 : 일반 사용자가 아카이브 된 레코드를 요청하면 문서를 다시 구성하고 새 TTL을 설정할 수 있습니다. 최종 사용자 관점에서 볼 때 실제로 오래된 데이터에 대한 액세스가 필요한 경우 따로 따로 처리하는 것이 일반적입니다. 또는 해고 당하면 장면 뒤에서 할 수 있습니다.

+0

재미있는 아이디어 : 감사합니다. 모든 시나리오 (특히 단일 문서를 대상으로하지 않는 검색/보고서)는 해결되지 않습니다. 그러나 어떤 경우에는 멋지게 잘 맞을 수 있습니다. 정말 감사드립니다. –