Столбец Id получает значение None в py2neo.ogm - PullRequest
2 голосов
/ 18 января 2020

Я работаю с интерфейсом py2neo для доступа к базе данных neo4j из python. Я хочу использовать автоматически сгенерированный столбец Id в модели OGM в качестве свойства. Но моя идея не работает. Пожалуйста, посмотрите пример:

from py2neo import Graph, Node, Relationship
from py2neo.ogm import GraphObject, Property, RelatedTo, RelatedFrom

class Material(GraphObject):
    id = Property()
    name = Property()
    description = Property()

Я вставляю значения в систему:

mat_f01 = Node('Material', name='F01', description='Fert Product 01')
mat_f02 = Node('Material', name='F02', description='Fert Product 02')

В браузере neo4j запись отображается следующим образом - с колонкой id:

<id>:178 description: Fert Product 02 name: F02 

Если я смотрю на те же записи в flask, столбец Id содержит значение None. Он должен содержать 177 и 178.

description             id      name
Fert Product 01 Fert    None    F01 
Fert Product 03 Fert    None    F03

Большое спасибо заранее.

1 Ответ

1 голос
/ 19 января 2020

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

Если вам нужен уникальный идентификатор свойство тогда я рекомендую вместо этого шестнадцатеричную строку UUID4. Вы можете сгенерировать один из них в Python через модуль uuid, и он должен быть гарантированно уникальным для всех практических целей.

...