#neo4j
Вопрос:
Я в восторге от нового, connectOrCreate
но не знаю, как его использовать. Надеялся, что смогу получить какую-нибудь помощь.
У меня есть такая структура:
(t:Topic)-[:VOTE_HAS_THING]-(v:Vote)-[:VOTE_HAS_FACT]-(d:Detail)
Что, по сути, позволяет пользователям голосовать за конкретные комбинации деталей/тем. Голоса пользователей выглядят так:
(u:User)-[:VOTED]-(v:Vote)
И я хотел бы использовать запросы СЛИЯНИЯ, подобные этому:
Где thing.id = X и detail.id = Y, найдите и подключите соответствующий узел голосования или создайте его, если он не существует.
Я не планирую создавать узлы голосования до тех пор, пока они не понадобятся, поэтому я думаю, что заявления о СЛИЯНИИ будут иметь смысл здесь, есть идеи? Должен ли я использовать а createVotes
в качестве мутации верхнего уровня?
По сути, мой вопрос заключается в следующем: могу ли я добавить отношения между User
и Vote
и, если Vote
их не существует, затем создать его, а затем подключить пользователя.
Должен ли я сделать идентификатор Vote
узла чем-то, что я могу «угадать», что было бы просто Topic.id Detail.id? Так что я могу просто проверить, существует ли этот идентификатор, если нет, то создать его?
Комментарии:
1. Если я могу обновить узел или создать его, если он еще не существует, я мог бы сделать это, а затем добавить в него пользователя. Может ли это быть один вопрос?
2. Вы можете использовать
MERGE
оператор , который эквивалентен «СОПОСТАВИТЬ», если узел существует, или «СОЗДАТЬ» в противном случае. Тем не менее, я не знаю, к какому языку/структуре этоconnectOrCreate
относится, поэтому я не могу сказать вам больше.3. Да, извините, я имею в виду, что делаю это с помощью GraphQL здесь, я должен был указать это раньше!