我有一个拥有五十万条记录的员工集合.每条记录都有以下详细信息.
mongo文件如下.
{
"_id": "234463456453643563456",
"name": "Mike",
"empId": "10",
"managerId": "8",
"projects" : [ "123", "456", "789"]
}
Run Code Online (Sandbox Code Playgroud)
一个.过滤位置
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) 如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)