2014-10-07 4 views
1

나는 foo와 bar 사이에 일대일 관계가 있습니다. foo가 삭제 될 때마다 그것을 참조하는 모든 막대도 삭제되도록하고 싶습니다. 이것이 모피 아에서 일어날 수있는 방법이 있습니까? 모든 종속 객체를 찾아 삭제할 수있는 삭제 쿼리를 작성할 수는 있지만 문제는 막대 객체에 삭제하려는 객체를 참조하는 것이고 삭제 논리가 자동으로 계단식으로 유지되도록하려는 것입니다.모피 아에서 삭제 된 참조에 의존하는 모든 레코드를 삭제 하시겠습니까?

+0

포인터를 삭제하면 NULL 참조가 생깁니다. 따라서 동일한 포인터를 가리키는 다른 포인터가 있으면이 포인터는 NULL 참조를 갖습니다. 그들은 아무데도 가리킨다. 그러나 bar 포인터가 foo가 가리키는 위치를 가리키고 있거나 둘 다 동일한 메모리 위치를 가리키고 있다면 bar 포인터는 계속해서 같은 메모리에 대한 참조를 만듭니다. 삭제 후 현재 참조를 확인하려면 값만 인쇄하면됩니다. null 또는 0 참조 여야합니다. – Juniar

+0

기본 동작을 이해하지만 기본 동작을 원하지 않습니다. 바 참조를 확인하거나 별도의 쿼리로 삭제할 필요없이 bar가 수행 할 때 foo의 모든 포인트가 완전히 사라지 길 바란다. mongo는 일반적인 유스 케이스처럼 보이기 때문에 mongo가 이미 최적화를 통해 이것을보다 효율적으로 지원할 것으로 예상합니다. 나는 모르핀이 그것을지지한다고 확신하지는 않는다. 그렇다면 그것을하는 법을 알 수는 없지만 내가 볼 것을 요구할 것이라고 생각했다. – dsollen

답변

3

참조 된 문서를 제거하려면 별도의 전화를 걸어야합니다. Mongo는 관계 나 계단식 삭제를 지원하지 않습니다. 참조를 사용하지 않고 해당 문서를 임베드하는 것이 좋습니다.

+0

나는 이것을 두려워했다. 그러나 나는 단지 물어야했다. 옵션이있는 경우에 대비해. 내가 뭘 의심했는지 확인해 주셔서 감사합니다. 삽입은 결국 발생할 수 있습니다. 현재는 기존의 mongo 구조에 대한 변경을 최소화하려고합니다. 나는 나중에 그것을 명심 할 것이다. – dsollen