회사의 결제선 상품 카테고리등을 트리패턴을 통해 모델링 해보자
회사 결재선 작성
// 테스트 데이터 삽입
db.employees.insertMany([
{
_id: 1,
name: "Eliot",
position: "CEO"
},
{
_id: 2,
name: "Ron",
position: "Center Lead",
reportsTo: "Eliot"
},
{
_id: 3,
name: "Tom",
position: "Team Lead",
reportsTo: "Ron"
},
{
_id: 4,
name: "Bred",
position: "Team Member",
reportsTo: "Tom"
},
{
_id: 5,
name: "Don",
position: "Team Member",
reportsTo: "Tom"
},
{
_id: 6,
name: "Carl",
position: "Team Member",
reportsTo: "Tom"
}
])db.employees.aggregate([
{
$graphLookup: {
from: "employees", // 어떤 컬렉션을 참조할 것이냐
startWith: "$reportsTo", // 어디서부터 시작
connectFromField: "reportsTo", // 어떤 필드를
connectToField: "name", // 어떤 필드까지 연결할 것인지
depthField: "depth",
as: "reportingHierarchy"
}
}
])