识别常见对象

时间:2017-02-20 10:49:42

标签: mongodb neo4j

我最近开始使用Neo4J。要将现有数据从mongo加载到Neo4j,我开始使用使用Neo4J Doc Manager的mongo-connector

但我在这里找到的问题如下: 假设我在mongo中有2个文档:

Doc 1:{“title”:“Associate”,“_ id”:“title_1”,“technicalSkills”:[{“name”:“Accounting Associate”,“score”:0.5482839345932007,“_ id”:“skill_1 “}]}

Doc 2:{“title”:“Associate Level 2”,“_ id”:“title_2”,“technicalSkills”:[{“_ id”:“skill_1”,“name”:“Accounting Associate”,“score “:0.65},{”name“:”Lead Home Health Care Company“,”得分“:0.5077081322669983,”_ id“:”skill_2“}]}

当我们运行mongo-connector时,它将插入neo4j,两个标题节点,每个节点都有自己的技能节点。但是如果你看到,两个标题节点之间有一个共同的技能。我在这里的问题是:

  1. 是否有办法只有一个技能节点对两个文档都是通用的,然后将此节点连接到两个标题节点。

  2. 我们可以得分而不是关系吗? (在这种情况下,它会创建类似title_skill的关系。)

1 个答案:

答案 0 :(得分:0)

您需要两个mongo-collections并使用交叉集合引用。例如skillsassociates

db.skills.insert({ "name": "Accounting Associate", 
                   "_id": "skill_1"
});
db.skills.insert({ "name": "Lead Home Health Care Company",
                   "_id": "skill_2"
});

db.associates.insert({ "title":"Associate",
                       "_id":"title_1",
                       "technicalSkills":[{ "skills_id": "skill_1"
                                            "score": 0.5482839345932007
                       }]
});

db.associates.insert({ "title":"Associate Level 2",
                       "_id":"title_2",
                       "technicalSkills":[{ "skills_id": "skill_1",
                                            "score": 0.65},
                                          { "skills_id": "skill_2",
                                            "score": 0.5077081322669983 
                       }]
});