2017-02-20 10 views
0

Я недавно начал использовать Neo4J. Для того, чтобы загрузить существующие данные из Монго в Neo4j, я начал использовать Монго-разъем, который использует Neo4j Doc менеджерИдентифицировать общие объекты

Но проблема, которую я нашел здесь заключается в следующем: Допустим, у меня есть 2 документа в Монго:

Doc 1: {"title": "Associate", "_ id": "title_1", "technicalSkills": [{"name": "Account associate", "score": 0.5482839345932007, "_ id": "skill_1"}]}

Doc 2: {"title": "Associate Level 2", "_ id": "title_2", "technicalSkills": [{"_ id": "skill_1", "name": "Account Associate", " оценка ": 0,65}, {" name ":" Lead Home Health Care Company "," score ": 0.5077081322669983," _ id ":" skill_2 "}]}

Когда мы запускаем mongo-коннектор, он будет вставляться в neo4j, два узла заголовка и каждый узел имеет свои собственные узлы навыков. Но если вы видите, есть общее умение между двумя титульными узлами. У меня есть вопрос здесь:

  1. Есть ли способ, чтобы иметь только один навык узла, который является общим для обоих Docs, а затем подключить этот узел как титульные узлы.

  2. Можем ли мы иметь счет вместо отношения? (В этом случае он создает отношения типа title_skill).

ответ

0

Вам нужны две коллекции манго и ссылки на кросс-коллекции. Например, skills и associates:

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 
         }] 
});