storeDigraph

Сохраните ориентированного графа в базе данных Neo4j

Синтаксис

storeDigraph(neo4jconn,G)
storeDigraph(neo4jconn,G,Name,Value)
graphinfo = storeDigraph(___)

Описание

пример

storeDigraph(neo4jconn,G) преобразовывает ориентированного графа в график Neo4j® и хранит его в базе данных Neo4j с помощью соединения с базой данных Neo4j. Переменные в узле и таблицах ребра объекта digraph (кроме переменной EndNodes) становятся свойствами узлов и отношений в графике Neo4j.

пример

storeDigraph(neo4jconn,G,Name,Value) задает дополнительные опции с помощью одного или нескольких аргументов пары "имя-значение". Например, 'GlobalNodeLabel','Person' хранит все узлы в ориентированном графе при помощи метки узла Person.

пример

graphinfo = storeDigraph(___) возвращает информацию о графике как структуру с помощью любой из комбинаций входных аргументов в предыдущих синтаксисах.

Примеры

свернуть все

Создайте объект digraph и сохраните его содержимое в базе данных Neo4j®. Отобразите содержимое получившегося графика Neo4j.

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

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

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

neo4jconn = neo4j(url,username,password);

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

neo4jconn.Message
ans =

     []

Создайте объект digraph с тремя узлами, который представляет новый график Neo4j. Узлы представляют трех дополнительных людей: User8, User9 и User10.

G = digraph([1 1 3],[2 3 2],[1 2 3],{'User8','User9','User10'});

Храните данные как график Neo4j в базе данных Neo4j.

storeDigraph(neo4jconn,G)

По умолчанию функция storeDigraph хранит ориентированного графа без меток узла. Кроме того, функция хранит отношения типом связей по умолчанию Edge.

Отобразите информацию о вершинах графика Neo4j. graphinfo является структурой, которая содержит информация об отношении и узел.

criteria = ["Edge"];
graphinfo = searchGraph(neo4jconn,criteria);
graphinfo.Nodes
ans=3×3 table
          NodeLabels      NodeData                  NodeObject             
          __________    ____________    ___________________________________

    7         []        [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]
    52        []        [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]
    47        []        [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]

Nodes является таблицей, которая содержит эти переменные:

  • 'NodeLabel'

  • NodeData

  • Объект Neo4jNode

Отобразите информацию об отношениях графика Neo4j.

graphinfo.Relations
ans=3×5 table
          StartNodeID    RelationType    EndNodeID    RelationData                RelationObject             
          ___________    ____________    _________    ____________    _______________________________________

    17         7            'Edge'          52        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    18        47            'Edge'          52        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    35         7            'Edge'          47        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]

Relations является таблицей, которая содержит эти переменные:

  • Запустите идентификатор узла

  • Тип связей

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

  • Данные об отношении

  • Объект Neo4jRelation

Закройте соединение с базой данных.

close(neo4jconn)

Создайте объект digraph и сохраните его содержимое в базе данных Neo4j®. Задайте метку узла, чтобы примениться ко всем узлам в получившемся графике Neo4j. Задайте тип связей, чтобы примениться ко всем отношениям в получившемся графике Neo4j. Отобразите содержимое графика.

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

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

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

neo4jconn = neo4j(url,username,password);

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

neo4jconn.Message
ans =

     []

Создайте объект digraph с тремя узлами, который представляет новый график Neo4j. Узлы представляют трех дополнительных людей: User8, User9 и User10.

G = digraph([1 1 3],[2 3 2],[1 2 3],["User8" "User9" "User10"]);

Храните данные как график Neo4j в базе данных Neo4j. Задайте метку Person узла для каждого узла в получившемся графике Neo4j при помощи аргумента пары "имя-значение" 'GlobalNodeLabel'. Задайте тип связей knows для каждого отношения в графике при помощи аргумента пары "имя-значение" 'GlobalRelationType'.

storeDigraph(neo4jconn,G,'GlobalNodeLabel','Person', ...
    'GlobalRelationType','knows')

Отобразите информацию о вершинах графика Neo4j. graphinfo является структурой, которая содержит информация об отношении и узел.

criteria = {'Person'};
graphinfo = searchGraph(neo4jconn,criteria);
graphinfo.Nodes
ans=10×3 table
          NodeLabels      NodeData                  NodeObject             
          __________    ____________    ___________________________________

    0      'Person'     [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]
    48     'Person'     [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]
    1      'Person'     [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]
    2      'Person'     [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]
    3      'Person'     [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]
    4      'Person'     [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]
    5      'Person'     [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]
    9      'Person'     [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]
    49     'Person'     [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]
    50     'Person'     [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]

Nodes является таблицей, которая содержит эти переменные:

  • 'NodeLabel'

  • NodeData

  • Объект Neo4jNode

graphinfo содержит три дополнительных узла.

Отобразите информацию об отношениях графика Neo4j.

graphinfo.Relations
ans=11×5 table
          StartNodeID    RelationType    EndNodeID    RelationData                RelationObject             
          ___________    ____________    _________    ____________    _______________________________________

    1          0           'knows'           1        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    0          0           'knows'           2        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    3          1           'knows'           3        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    2          2           'knows'           1        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    5          3           'knows'           4        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    4          3           'knows'           5        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    6          5           'knows'           4        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    8          5           'knows'           9        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    19        48           'knows'          49        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    7         48           'knows'          50        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    9         50           'knows'          49        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]

Relations является таблицей, которая содержит эти переменные:

  • Запустите идентификатор узла

  • Тип связей

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

  • Данные об отношении

  • Объект Neo4jRelation

graphinfo содержит три дополнительных отношения.

Закройте соединение с базой данных.

close(neo4jconn)

Создайте объект digraph путем определения узлов и ребер. Затем сохраните ориентированного графа в базе данных Neo4j® путем определения меток узла и типов связей. Отобразите содержимое получившегося графика Neo4j. Доступ к информации о графике с помощью выходного аргумента.

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

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

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

neo4jconn = neo4j(url,username,password);

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

neo4jconn.Message
ans =

     []

Составьте таблицу для узлов. Задайте переменную names, которая содержит имена трех дополнительных людей: User8, User9 и User10. Затем задайте переменную classification, чтобы классифицировать каждого человека как Person. Кроме того, задайте переменную titles, которая содержит должность каждого человека. Первые два человека являются аналитиками, и третьим является технический специалист.

names = {'User8';'User9';'User10'};
classification = {'Person';'Person';'Person'};
titles = {'Analyst';'Analyst';'Technician'};
nodetable = table(names,classification,titles,'VariableNames', ... 
    {'Name','Classification','Title'});

Составьте таблицу с двумя ребрами. Одно ребро указывает, что два человека знают друг друга. Другое ребро указывает, что два человека работают друг с другом.

edge1 = [1 2];
edge2 = [3 3];
description = {'knows','works with'};
edgetable = table([edge1',edge2'],description', ...
    'VariableNames',{'EndNodes','Description'});

Создайте объект digraph с помощью таблиц узла и ребра.

G = digraph(edgetable,nodetable);

Храните данные в объекте digraph как график Neo4j в базе данных Neo4j. Задайте метки узла для каждого узла в получившемся графике Neo4j при помощи аргумента пары "имя-значение" 'NodeLabel'. График использует переменные Classification и Title таблицы узла для меток узла. Кроме того, график использует переменную Description таблицы ребра для типов связей.

labels = {'Classification';'Title'};
relation = 'Description';
graphinfo = storeDigraph(neo4jconn,G,'NodeLabel',labels, ...
    'RelationType',relation)
graphinfo = struct with fields:
        Nodes: [3×3 table]
    Relations: [2×5 table]

Отобразите информацию о вершинах графика Neo4j.

graphinfo.Nodes
ans=3×3 table
          NodeLabels      NodeData                  NodeObject             
          __________    ____________    ___________________________________

    6     {2×1 cell}    [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]
    52    {2×1 cell}    [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]
    7     {2×1 cell}    [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]

Nodes является таблицей, которая содержит эти переменные:

  • 'NodeLabel'

  • NodeData

  • Объект Neo4jNode

Отобразите информацию об отношениях графика Neo4j.

graphinfo.Relations
ans=2×5 table
          StartNodeID    RelationType    EndNodeID    RelationData                RelationObject             
          ___________    ____________    _________    ____________    _______________________________________

    17         6         'knows'             7        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    35        52         'works with'        7        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]

Relations является таблицей, которая содержит эти переменные:

  • Запустите идентификатор узла

  • Тип связей

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

  • Данные об отношении

  • Объект Neo4jRelation

Закройте соединение с базой данных.

close(neo4jconn)

Входные параметры

свернуть все

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

Ориентированный граф, заданный как объект digraph.

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: graphinfo = storeDigraph(neo4jconn,G,'GlobalNodeLabel','Person','GlobalRelationType','knows') хранит ориентированного графа и указывает, что все узлы в получившемся графике имеют метку узла Person, и все отношения имеют тип knows.

Примечание

Если вы не задаете 'GlobalNodeLabel' или 'NodeLabel', получившийся график Neo4j содержит узлы без меток.

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

После того, как вы выполняете функцию storeDigraph, каждый узел в получившемся графике Neo4j содержит метки узла, что вы задаете использование этого аргумента пары "имя-значение".

Пример: "Person"

Пример: {'Person','Employee'}

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

Метка Node, заданная как пара, разделенная запятой, состоящая из 'NodeLabel' и вектора символов, массива ячеек из символьных векторов, представляет в виде строки скаляр или массив строк. Чтобы задать одну метку узла, используйте вектор символов или представьте скаляр в виде строки. Чтобы задать несколько меток узла, задайте массив ячеек из символьных векторов или массив строк.

Чтобы задать различные метки для узлов в получившемся графике Neo4j, используйте этот аргумент пары "имя-значение". Заданные метки узла должны совпадать с именами переменных в таблице информации об узле в объекте digraph.

Пример: "Person"

Пример: {'Name','Title'}

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

Глобальный тип связей, заданный как пара, разделенная запятой, состоящая из 'GlobalRelationType' и вектора символов или скаляра строки. Чтобы задать тот же тип отношения для всех отношений между узлами в получившемся графике Neo4j, используйте этот аргумент пары "имя-значение".

Примечание

При определении типа отношения используйте любого аргумент пары "имя-значение" 'GlobalRelationType' или 'RelationType'. Вы не можете задать оба из этих аргументов одновременно.

Пример: "knows"

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

Тип связей, заданный как пара, разделенная запятой, состоящая из 'RelationType' и вектора символов или скаляра строки. Чтобы задать различные типы отношений между узлами в получившемся графике Neo4j, используйте этот аргумент пары "имя-значение". Заданные типы должны совпадать с именами переменных в таблице информации о ребре в объекте digraph.

Примечание

При определении типа отношения используйте любого аргумент пары "имя-значение" 'RelationType' или 'GlobalRelationType'. Вы не можете задать оба из этих аргументов одновременно.

Пример: 'Description'

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

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

свернуть все

Информация о графике в базе данных Neo4j, возвращенной как структура с этими полями.

Поле Описание

Nodes

Таблица, которая содержит информацию об узле для каждого узла в таблице Relations. Таблица Nodes содержит эти переменные:

  • NodeLabels — Вектор символов, который обозначает метку узла

  • NodeData Массив структур, который содержит информацию об узле, такую как ключи свойства

  • Объект NodeObjectNeo4jNode, который представляет каждый узел

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

Relations

Таблица, которая содержит информацию об отношении для узлов в таблице Nodes. Таблица Relations содержит эти переменные:

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

  • RelationType — Вектор символов, который обозначает тип каждого отношения

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

  • RelationData — Массив структур, который содержит ключи свойства, сопоставленные с каждым отношением

  • Объект RelationObjectNeo4jRelation, который представляет каждое отношение

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

Советы

  • Функция storeDigraph хранит все объекты MATLAB® как JSON эквиваленты string в графике Neo4j. Например, функция хранит дату datetime('Jan/01/2017') как "Jan/01/2017" в графике Neo4j.

Введенный в R2018a

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