문서 메뉴

문서 홈애플리케이션 개발MongoDB 매뉴얼

자식 참조가 있는 모델 트리 구조

이 페이지의 내용

  • 개요
  • 패턴

이 페이지에서는 상위 노드의 참조를 하위 노드에 저장하여 MongoDB 문서에서 트리와 같은 구조를 설명하는 데이터 모델을 소개합니다.

하위 참조 패턴은 각 트리 노드를 문서에 저장합니다. 문서는 트리 노드 외에도 노드 하위 항목의 ID를 배열에 저장합니다.

다음과 같은 카테고리 계층 구조를 고려하세요:

카테고리의 샘플 계층 구조에 대한 트리 데이터 모델입니다.

다음 예시에서는 하위 참조를 사용하여 children 필드에 노드 하위 항목을 저장합니다.

db.categories.insertMany( [
{ _id: "MongoDB", children: [] },
{ _id: "dbm", children: [] },
{ _id: "Databases", children: [ "MongoDB", "dbm" ] },
{ _id: "Languages", children: [] },
{ _id: "Programming", children: [ "Databases", "Languages" ] },
{ _id: "Books", children: [ "Programming" ] }
] )
  • 노드의 직계 하위 항목을 조회하는 쿼리는 빠르고 간단합니다.

    db.categories.findOne( { _id: "Databases" } ).children
  • 하위 노드에서 빠르게 검색하도록 children 필드에 인덱스를 생성할 수 있습니다:

    db.categories.createIndex( { children: 1 } )
  • children 필드에서 노드를 조회하여 상위 노드와 형제 노드를 찾을 수 있습니다.

    db.categories.find( { children: "MongoDB" } )

하위 참조 패턴은 하위 트리에 대한 작업이 필요한 경우가 아닌 경우 트리 저장에 적합한 솔루션을 제공합니다. 이 패턴은 또한 노드에 여러 상위 노드가 존재할 수 있는 그래프를 저장하기에 적합한 솔루션도 제공할 수 있습니다.

← 부모 참조가 있는 모델 트리 구조

이 페이지의 내용