2
模擬示例。二MongoDB的集合,departments
和employees
:查詢mongodb中變化的多級關係
部門
{ _id: '101' }
{ _id: '102', parent: '101' }
{ _id: '103', parent: '101' }
{ _id: '104', parent: '103' }
員工
{ _id: '201', department: '101' }
{ _id: '202', department: '102' }
{ _id: '203', department: '102' }
{ _id: '204', department: '103' }
{ _id: '205', department: '104' }
我如何可以查詢所有員工的部門清單,或任何下級部門(由department.parent
引用屬性)?
因此,對於上面的例子中,查詢:
- 部門
101
應該給員工的文檔201, 202, 203, 204, 205
- 部門
102
應該給員工的文檔202, 203, 204, 205
- 部門
103
應該給員工的文檔204, 205
如果無法查詢部門樹中「任意數量」的級別,則可以提供「最多N級」結果的查詢是完全可以接受的。
用你目前的數據結構很難做到這一點(可行,但效率不高)。我建議你將子域添加到部門來模擬樹結構。這會讓你的生活變得更加輕鬆。請參閱https://docs.mongodb.com/manual/tutorial/model-tree-structures/ – spiritwalker