Я использую flask с py2neo для службы Rest, у меня есть пользовательский узел с меткой «Пользователь».
как автоматически увеличить идентификатор для метки «Пользователь» в neo4j с помощью py2neo?
Я использую flask с py2neo для службы Rest, у меня есть пользовательский узел с меткой «Пользователь».
как автоматически увеличить идентификатор для метки «Пользователь» в neo4j с помощью py2neo?
Вы этого не делаете и, вероятно, не должны. Neo4j уже предоставляет внутреннее поле id
, которое является автоматически увеличивающимся целым числом. Это не свойство узла, но оно доступно через функцию id()
, например:
MATCH (n:Person)
RETURN id(n);
Таким образом, всякий раз, когда вы создаете какой-либо узел, это уже происходит автоматически и бесплатно для neo4j, а не для py2neo.
Если вам нужен другой тип идентификатора для вашего кода, я бы порекомендовал что-то, вероятно глобально уникальное, например UUID, что очень легко сделать в python, а не в виде автоинкрементного целого числа.
Проблема с автоматически увеличивающимися числами в качестве идентификаторов заключается в том, что, поскольку они имеют шаблон для них (автоувеличение), люди начинают полагаться на значение идентификатора или полагаться на ожидания того, как будет назначен идентификатор. Это почти всегда плохая идея в базах данных. Единственная цель идентификатора — быть уникальным среди всего остального. Это ничего не значит, а в некоторых случаях даже не гарантируется, что оно не изменится. Не встраивайте в свой код какую-либо зависимость от какого-либо конкретного значения или схемы присваивания.
Вот почему мне нравятся UUID, потому что их схема назначения по существу произвольна, и они явно ничего не значат, поэтому они не соблазняют дизайнеров делать с ними что-то умное. :)