相关疑难解决方法(0)

使用$ graphLookup与Mongo进行分层查询

我有一个拥有五十万条记录的员工集合.每条记录都有以下详细信息.

mongo文件如下.

{
  "_id": "234463456453643563456",
  "name": "Mike",
  "empId": "10",
  "managerId": "8",
  "projects" : [ "123", "456", "789"]
}
Run Code Online (Sandbox Code Playgroud)
  1. 当我给出任何empId时,它应该将完整的层次结构从该管理器返回到底层以及以下过滤器.

一个.过滤位置
b.过滤项目

结果应该是,像,

      10     ->>> Manager
      /\
     /  \
    8    6  ---->> 8 & 6 reporting to manager 10
    /\    /\
   /  \  /  \
  4    5 2   1  ---->> 4 & 5 reporting to manager 8 ...
Run Code Online (Sandbox Code Playgroud)

任何帮助将获得层次结果与水平?

我无法按预期得到结果.

样本数据 :-

db.getCollection("employees").insert({"_id":"10","empId": "10","name":"Employee10","managerId":"15" });

db.getCollection("employees").insert({"_id":"8","empId": "8","name":"Employee8","managerId":"10" });

db.getCollection("employees").insert({"_id":"6","empId": "6","name":"Employee6","managerId":"10" });

db.getCollection("employees").insert({"_id":"4","empId": "4","name":"Employee4","managerId":"8" });

db.getCollection("employees").insert({"_id":"5","empId": "5","name":"Employee5","managerId":"8" });

db.getCollection("employees").insert({"_id":"2","empId": "2","name":"Employee2","managerId":"6" });

db.getCollection("employees").insert({"_id":"1","empId": …
Run Code Online (Sandbox Code Playgroud)

mongodb

10
推荐指数
2
解决办法
751
查看次数

MongoDB $graphLookup 获取所有级别的子级深嵌套结果

https://www.slideshare.net/mongodb/webinar-working-with-graph-data-in-mongodb 中所示幻灯片 50可以$graphLookup在视图上使用以获得 2 级深度树结构在嵌套格式

我有一个带有树节点的 MongoDB 集合作为具有以下格式的文档:

{ "_id" : { "$oid" : "5b1a952361c6fa3418a15660" }, 
"nodeId" : 23978995, 
"name" : "settings", 
"type" : "Node",
"parentId" : [ 23978893, 23979072, 23979081 ] }
Run Code Online (Sandbox Code Playgroud)

我创建了一个视图,如:

db.createView("treeView", "node", [
{
 $graphLookup: {
    from: "node",
    startWith: "$nodeId",
    connectFromField: "nodeId",
    connectToField: "parentId",
    maxDepth: 0,
    as: "children"
 }
}
]);
Run Code Online (Sandbox Code Playgroud)

我执行图形查找,如:

db.node.aggregate([ 
{ $match: {"nodeId": 23978786 } },
{
 $graphLookup: {
    from: "treeView",
    startWith: "$nodeId",
    connectFromField: "nodeId", …
Run Code Online (Sandbox Code Playgroud)

tree-structure mongodb aggregation-framework

4
推荐指数
1
解决办法
6489
查看次数