Я использую API-интерфейс Neo4J REST для выполнения отдельных запросов:
Есть ли способ выполнить все эти операции в одном запросе?
Вероятно, самым простым способом является создание единого запроса Cypher, который объединяет все в один запрос. Имейте в виду, что вам не нужен идентификатор узла, если вы просто работаете с ним во время запроса Cypher.
Вы можете использовать либо конечную точку Cypher, либо конечную точку транзакции HTTP. В этом случае, вероятно, проще всего использовать конечную точку Cypher (единственная разница здесь в том, что конечная точка Cypher автоматически пытается совершить транзакцию в конце запроса, тогда как конечная точка транзакции HTTP может охватывать несколько запросов, хотя она все еще может быть использована для одного запроса).
http://docs.neo4j.org/chunked/stable/rest-api-cypher.html содержит много информации о конечной точке Cypher, а http://docs.neo4j.org/chunked/stable/rest-api- transactional.html имеет информацию о конечной точке транзакции HTTP.
Версия TL: DR: /db/data/cypher, скорее всего, конечная точка, с которой вы хотите отправить запрос.
Сам запрос Cypher должен быть довольно простым; что-то вроде:
CREATE (u:User)-[:REL_TYPE]->(p:Picture)
... конечно, если вам нужно сделать несколько таких вставок, возможно, просмотр пакетной операции может быть плохой идеей, особенно если ваш запрос Cypher слишком длинный (посмотрите на конечную точку транзакции HTTP для получения дополнительной информации; прямой).
Надеюсь это поможет!
POST /db/data/transaction/commit
- это конечная точка, которую вы хотите использовать.CREATE (u:User {name:{name}})-[:REL_TYPE]->(p:Picture {url:{url}}) RETURN id(u), id(p)
Также проверьте Справочную карту Cypher и командаMERGE
. neo4j.org/resources/cypher