javascript - 我如何在 mongodb 中使用它们的参考来获取分层数据?
问题描述
我有一个 MongoDB 集合部门作为具有以下格式的文档:
{
"department_id" : 1,
"title" : "Department1",
"departmentType_id" : 11
}
{
"department_id" : 2,
"title" : "Department2",
"departmentType_id" : 12
}
{
"department_id" : 3,
"title" : "Department3",
"departmentType_id" : 13
}
{
"department_id" : 4,
"title" : "Department4",
"departmentType_id" : 14
}
{
"department_id" : 5,
"title" : "Department5",
"departmentType_id" : 15
}
{
"department_id" : 6,
"title" : "Department6",
"departmentType_id" : 16
}
{
"department_id" : 7,
"title" : "Department7",
"departmentType_id" : 17
}
我有一个 MongoDB 集合DepartmentDepartmentRelationship作为具有以下格式的文档:
{
"departmentDepartmentRelationshipId" : 100,
"relationshipTitle" : "Department1 is parent of Department2",
"department1_id" : 1,//reference of department with department_id: 1
"department2_id" : 2,//reference of department with department_id: 2
"rootParentDepartment_id" :1,//reference of department with department_id: 1
"rootParentDepartment_id" : 1,//reference of department with department_id: 1
}
{
"departmentDepartmentRelationshipId" : 200,
"relationshipTitle" : "Department2 is parent of Department3",
"department1_id" : 2,//reference of department with department_id: 2
"department2_id" : 3,//reference of department with department_id: 3
"rootParentDepartment_id" :1,//reference of department with department_id: 1
"rootParentDepartment_id" : 1,//reference of department with department_id: 1
}
{
"departmentDepartmentRelationshipId" : 210,
"relationshipTitle" : "Department2 is parent of Department7",
"department1_id" : 2,//reference of department with department_id: 2
"department2_id" : 7,//reference of department with department_id: 7
"rootParentDepartment_id" :1,//reference of department with department_id: 1
"rootParentDepartment_id" : 1,//reference of department with department_id: 1
}
{
"departmentDepartmentRelationshipId" : 300,
"relationshipTitle" : "Department3 is parent of Department4",
"department1_id" : 3,//reference of department with department_id: 3
"department2_id" : 4,//reference of department with department_id: 4
"rootParentDepartment_id" :1,//reference of department with department_id: 1
"rootParentDepartment_id" : 1,//reference of department with department_id: 1
}
{
"departmentDepartmentRelationshipId" : 400,
"relationshipTitle" : "Department4 is parent of Department5",
"department1_id" : 4,//reference of department with department_id: 4
"department2_id" : 5,//reference of department with department_id: 5
"rootParentDepartment_id" :1,//reference of department with department_id: 1
"rootParentDepartment_id" : 1,//reference of department with department_id: 1
}
{
"departmentDepartmentRelationshipId" : 500,
"relationshipTitle" : "Department4 is parent of Department6",
"department1_id" : 4,//reference of department with department_id: 4
"department2_id" : 6,//reference of department with department_id: 6
"rootParentDepartment_id" :1,//reference of department with department_id: 1
"rootParentDepartment_id" : 1,//reference of department with department_id: 1
}
现在我定义层次结构的模型是:
{
"_id" : ObjectId("60af33d948d800a1315e96f6"),
"departmentDepartmentRelationshipId" :100,
"childs" : [
{
"departmentDepartmentRelationshipId" : 200,
"childs" : [ //child could by more than one
{
"departmentDepartmentRelationshipId" : 300,
"childs" : [//child could by more than one
{
"departmentDepartmentRelationshipId" : 400,
"childs" : []
}
{
"departmentDepartmentRelationshipId" : 500,
"childs" : []
}
]
},
{
"departmentDepartmentRelationshipId" : 210,
"childs" : []
}
]
}
]
}
是否可以在单个查询中获取以上层次模型,而不是它的引用,我想要 来自departmentDepartmentRelationship集合的departmentDepartmentRelationship JSON 对象?我的预期输出是::
{
"_id" : ObjectId("60af33d948d800a1315e96f6"),
{
"departmentDepartmentRelationshipId" : 100,
"relationshipTitle" : "Department1 is parent of Department2",
"department1_id" : 1,//reference of department with department_id: 1
"department2_id" : 2,//reference of department with department_id: 2
"rootParentDepartment_id" :1,//reference of department with department_id: 1
"rootParentDepartment_id" : 1,//reference of department with department_id: 1
},
"childs" : [
{
{
"departmentDepartmentRelationshipId" : 200,
"relationshipTitle" : "Department2 is parent of Department3",
"department1_id" : 2,//reference of department with department_id: 2
"department2_id" : 3,//reference of department with department_id: 3
"rootParentDepartment_id" :1,//reference of department with department_id: 1
"rootParentDepartment_id" : 1,//reference of department with department_id: 1
},
"childs" : [ //child could by more than one
{
{
"departmentDepartmentRelationshipId" : 300,
"relationshipTitle" : "Department3 is parent of Department4",
"department1_id" : 3,//reference of department with department_id: 3
"department2_id" : 4,//reference of department with department_id: 4
"rootParentDepartment_id" :1,//reference of department with department_id: 1
"rootParentDepartment_id" : 1,//reference of department with department_id: 1
},
"childs" : [//child could by more than one
{
{
"departmentDepartmentRelationshipId" : 400,
"relationshipTitle" : "Department4 is parent of Department5",
"department1_id" : 4,//reference of department with department_id: 4
"department2_id" : 5,//reference of department with department_id: 5
"rootParentDepartment_id" :1,//reference of department with department_id: 1
"rootParentDepartment_id" : 1,//reference of department with department_id: 1
},
"childs" : []
}
{
{
"departmentDepartmentRelationshipId" : 500,
"relationshipTitle" : "Department4 is parent of Department6",
"department1_id" : 4,//reference of department with department_id: 4
"department2_id" : 6,//reference of department with department_id: 6
"rootParentDepartment_id" :1,//reference of department with department_id: 1
"rootParentDepartment_id" : 1,//reference of department with department_id: 1
},
"childs" : []
}
]
},
{
{
"departmentDepartmentRelationshipId" : 210,
"relationshipTitle" : "Department2 is parent of Department7",
"department1_id" : 2,//reference of department with department_id: 2
"department2_id" : 7,//reference of department with department_id: 7
"rootParentDepartment_id" :1,//reference of department with department_id: 1
"rootParentDepartment_id" : 1,//reference of department with department_id: 1
},
"childs" : []
}
]
}
]
}
我是 mongoDB 的绝对初学者,如果有人能帮助我,我将非常感激。
解决方案
推荐阅读
- docx - 使用 tinybutstrong 我可以生成 docx 但它已损坏
- java - 如何用java语言修改文本文件?
- ios - 如何永远在后台运行iOS应用程序?
- javascript - 如何添加 2 个打开的功能但延迟一个?
- elasticsearch - 删除未分配分片时未找到索引异常
- visual-studio-code - 无法启动 VsCode
- php - 如何使用 PHP 在 HTML 中添加代码然后显示它?
- ios - IOS 13 组合框架 - @Published 不起作用(“未知属性'已发布'”)
- javascript - 克隆表并在按钮后显示
- node.js - 无法从图书馆获得响应