exponenta event banner

createRelation

Создание связей между узлами в базе данных Neo4j

Описание

пример

createRelation(neo4jconn,startnode,endnode,relationtype) создает одно или несколько отношений между начальными узлами и конечными узлами с указанными типами отношений с помощью подключения к базе данных Neo4j ®.

пример

createRelation(neo4jconn,startnode,endnode,relationtype,'Properties',properties) задает свойства новых отношений.

пример

relationinfo = createRelation(___) возвращает информацию об отношениях в виде Neo4jRelation объект или таблицу, использующую любую из комбинаций входных аргументов в предыдущих синтаксисах.

Примеры

свернуть все

Создайте одно отношение между двумя узлами в базе данных Neo4j ® и просмотрите это отношение.

Создание Neo4j подключения к базе данных по URL-адресу http://localhost:7474/db/dataИмя пользователя neo4j, и пароль matlab.

url = 'http://localhost:7474/db/data';
username = 'neo4j';
password = 'matlab';

neo4jconn = neo4j(url,username,password);

Проверьте Message свойство объекта подключения Neo4j neo4jconn. Бланк Message указывает на успешное подключение.

neo4jconn.Message
ans =

     []

Создайте два узла в базе данных с помощью Neo4j подключения к базе данных. Используйте 'Labels' аргумент пары имя-значение для указания метки Person для каждого узла.

label = 'Person';
startnode = createNode(neo4jconn,'Labels',label);
endnode = createNode(neo4jconn,'Labels',label);

Создайте связь между двумя узлами с помощью Neo4j подключения к базе данных. Укажите тип отношения как works with.

relationtype = 'works with';
createRelation(neo4jconn,startnode,endnode,relationtype)

Найдите новую связь и просмотрите ее тип.

direction = "out";
relinfo = searchRelation(neo4jconn,startnode,direction, ...
    'RelationTypes',relationtype,'Distance',2);
relinfo.Relations.RelationType
ans = 1×1 cell array
    {'works with'}

Закройте подключение к базе данных.

close(neo4jconn)

Создайте единую связь со свойствами между двумя узлами в базе данных Neo4j ® и отобразите свойства.

Создание Neo4j подключения к базе данных по URL-адресу http://localhost:7474/db/dataИмя пользователя neo4j, и пароль matlab.

url = 'http://localhost:7474/db/data';
username = 'neo4j';
password = 'matlab';

neo4jconn = neo4j(url,username,password);

Проверьте Message свойство объекта подключения Neo4j neo4jconn. Бланк Message указывает на успешное подключение.

neo4jconn.Message
ans =

     []

Создайте два узла в базе данных с помощью Neo4j подключения к базе данных. Используйте 'Labels' аргумент пары имя-значение для указания метки Person для каждого узла.

label = 'Person';
startnode = createNode(neo4jconn,'Labels',label);
endnode = createNode(neo4jconn,'Labels',label);

Создайте связь между двумя узлами с помощью Neo4j подключения к базе данных. Узлы представляют двух коллег, которые начали совместную работу над проектом с именем Database 1 сентября 2017 года. Укажите тип отношения как works with. Укажите имя проекта и дату начала в качестве свойств связи с помощью properties структура.

relationtype = 'works with';
properties.Project = 'Database';
properties.StartDate = '09/01/2017';
createRelation(neo4jconn,startnode,endnode,relationtype, ...
    'Properties',properties)

Поиск новой связи и отображение ее свойств.

direction = "out";
relinfo = searchRelation(neo4jconn,startnode,direction, ...
    'RelationTypes',relationtype,'Distance',2);
relinfo.Relations.RelationData{1}
ans = struct with fields:
    StartDate: '09/01/2017'
      Project: 'Database'

Закройте подключение к базе данных.

close(neo4jconn)

Создайте две связи между узлами в базе данных Neo4j ® и просмотрите эти связи.

Предположим, что данные графика хранятся в базе данных Neo4j, представляющей социальный район. Эта база данных имеет семь узлов и восемь взаимосвязей. Каждый узел имеет только один уникальный ключ свойства name со значением в диапазоне от User1 через User7. Каждая связь имеет тип knows.

Создание Neo4j подключения к базе данных по URL-адресу http://localhost:7474/db/dataИмя пользователя neo4j, и пароль matlab.

url = 'http://localhost:7474/db/data';
username = 'neo4j';
password = 'matlab';

neo4jconn = neo4j(url,username,password);

Проверьте Message свойство объекта подключения Neo4j neo4jconn. Бланк Message указывает на успешное подключение.

neo4jconn.Message
ans =

     []

Поиск узла с меткой Person и ключ свойства name задайте значение User7 с помощью подключения к базе данных Neo4j.

nlabel = 'Person';
user7 = searchNode(neo4jconn,nlabel,'PropertyKey','name', ...
    'PropertyValue','User7');

Создайте два узла в базе данных с помощью Neo4j подключения к базе данных. Используйте 'Labels' аргумент пары имя-значение для указания метки Person для каждого узла.

label = 'Person';
user8 = createNode(neo4jconn,'Labels',label);
user9 = createNode(neo4jconn,'Labels',label);

Создайте две связи с помощью подключения к базе данных Neo4j. Укажите типы отношений как works with и studies with. Двумя взаимосвязями являются:

  • User8 работает с User7

  • User8 исследования с User9

startnode = [user8,user8];
endnode = [user7,user9];
relationtype = {'works with','studies with'};
relationinfo = createRelation(neo4jconn,startnode,endnode,relationtype)
relationinfo=2×5 table
         StartNodeID     RelationType     EndNodeID    RelationData                RelationObject             
         ___________    ______________    _________    ____________    _______________________________________

    9         6         'works with'          9        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    7         6         'studies with'        7        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]

relationinfo - таблица со следующими переменными:

  • Идентификатор начального узла

  • Тип отношения

  • Идентификатор конечного узла

  • Данные о взаимоотношениях

  • Neo4jRelation объект

Отображение Neo4jRelation объект для первого отношения.

relation = relationinfo.RelationObject(1)
relation = 
  Neo4jRelation with properties:

      RelationID: 9
    RelationData: [1×1 struct]
     StartNodeID: 6
    RelationType: 'works with'
       EndNodeID: 9

relation является Neo4jRelation объект со следующими свойствами:

  • Идентификатор связи

  • Данные о взаимоотношениях

  • Идентификатор начального узла

  • Тип отношения

  • Идентификатор конечного узла

Закройте подключение к базе данных.

close(neo4jconn)

Входные аргументы

свернуть все

Neo4j подключение к базе данных, указанное как Neo4jConnect объект, созданный с помощью функции neo4j.

Начальный узел, указанный как числовой скаляр, числовой вектор, Neo4jNode объект, или Neo4jNode массив объектов. Чтобы указать узлы базы данных с помощью идентификаторов узлов, используйте числовой скаляр для одного узла или числовой вектор для нескольких узлов. Указание узлов базы данных как Neo4jNode используйте объект для одного узла или массив объектов для нескольких узлов.

Число начальных узлов должно соответствовать числу конечных узлов в endnode.

Число начальных узлов равно количеству связей, созданных createRelation функция в базе данных Neo4j.

Пример: 8

Конечный узел, указанный как числовой скаляр, числовой вектор, Neo4jNode объект, или Neo4jNode массив объектов. Чтобы указать узлы базы данных с помощью идентификаторов узлов, используйте числовой скаляр для одного узла или числовой вектор для нескольких узлов. Указание узлов базы данных как Neo4jNode используйте объект для одного узла или массив объектов для нескольких узлов.

Число конечных узлов должно соответствовать числу начальных узлов в startnode.

Количество конечных узлов равно количеству связей, созданных createRelation функция в базе данных Neo4j.

Пример: 9

Тип отношения, заданный как вектор символа, скаляр строки, массив ячеек векторов символов или строковый массив. Чтобы указать один тип отношения, используйте вектор символа или скаляр строки. Чтобы указать несколько типов отношений, используйте массив ячеек из символьных векторов или строковый массив.

Если указан только один тип отношения, все отношения должны иметь один и тот же тип. В противном случае количество типов отношений в этом входном аргументе должно соответствовать количеству узлов в startnode и endnode.

Пример: 'knows'

Типы данных: char | string | cell

Свойства связи, указанные как структура, массив структуры, таблица или массив ячеек структур.

При указании структуры createRelation функция преобразует каждое поле и соответствующее ему значение в свойство и соответствующее ему значение в связи с базой данных. При указании таблицы с одной строкой функция преобразует каждую переменную и соответствующее ей значение в свойство и соответствующее ему значение в связи с базой данных.

createRelation функция также устанавливает RelationObject переменной relationinfo выходной аргумент для Neo4jRelation , который содержит информацию об отношениях.

Для нескольких связей укажите массив структуры или таблицу с несколькими строками.

Для нескольких связей с различными свойствами укажите массив ячеек структур.

Примечание

Если свойство не имеет соответствующего значения, то обновленное отношение не содержит этого свойства.

Типы данных: struct | table | cell

Выходные аргументы

свернуть все

Информация о связи, возвращенная как Neo4jRelation объект для одной связи или в виде таблицы для нескольких связей.

Для нескольких связей таблица содержит следующие переменные:

  • StartNodeID - Идентификатор начального узла для каждого сопоставленного отношения

  • RelationType - символьный вектор, обозначающий тип связи для каждой сопоставленной связи;

  • EndNodeID - Идентификатор конечного узла для каждого сопоставленного отношения

  • RelationData - Структурный массив, содержащий ключи свойств, связанные с каждой сопоставленной связью

  • RelationObjectNeo4jRelation объект для каждой сопоставленной связи

Имена строк в таблице являются Neo4j идентификаторами отношений.

Представлен в R2018a