Запрос на вставку Graql: дубликаты объектов Var
Var message = var().isa("message");
insert(message).execute();
Var relation = var().isa("connection")
.rel("role1", id("existing-id"))
.rel("role2", message);
insert(relation).execute();
Выполнение следующего создает два экземпляра сообщения.
Это ожидается? Если это так, это потому, что я не назначил идентификатор, или потому что я использовал два оператора вставки?
1 ответ
Решение
Это ожидаемое поведение. Вы правы, предполагая, что назначение идентификатора решит проблему:
Var message = var().id("my-message").isa("message");
Это происходит потому, что Var
не представляет собой единую концепцию. Вместо этого он представляет шаблон для сопоставления на графике. В этом случае Var
говорит только "вещи, которые являются сообщениями", а не какое-то конкретное сообщение.
Вы также можете назначить имя переменной, например, Var message = var("x"). ...
Чтобы это работало, вам нужно будет выполнить только один insert
,