我是Neo4j的新手,我有两个节点user
并且files
有关系:contains
,这个关系有一个属性id
是一个数组,表示为
(:user)-[:contains{id:[12345]}]->(:files)
Run Code Online (Sandbox Code Playgroud)
但是我想id
用值填充属性数组1111
并14567
依次使用Cypher
查询,我没有找到任何将值推入数组的方法.
在将1111插入财产id
之后将会是
(:user)-[:contains{id:[12345,1111]}]->(:files)
Run Code Online (Sandbox Code Playgroud)
在将14567插入财产id
之后将会是
(:user)-[:contains{id:[12345,1111,14567]}]->(:files)
Run Code Online (Sandbox Code Playgroud)
我不知道如何顺序地将值填充到属性数组
请帮助,提前致谢
我有2个节点类型,可以说"学生"和"老师"类型
Student have {id, name}.
Teacher have {id, name}.
Run Code Online (Sandbox Code Playgroud)
学生可以与班级节点建立可选关系,作为"教学".
(t:Teacher)-[r:TEACHES]->(c:Student).
[r:TEACHES] - Optional relationship. (present or may not present)
Run Code Online (Sandbox Code Playgroud)
我想找到没有老师的"学生"节点.即没有任何传入关系"教学"
请帮忙.
我对期限交易有点困惑.假设在事务A中我们有两个命令C1和C2,并且在事务B中是相同的.现在两个事务同时进行,那么这些观察是否正确?
事务A C1和C2的所有命令将首先完成(假设A先输入),然后只执行事务B的命令.
可以执行事务A或B的任何命令,但保证如果任何事务的任何命令失败,那么该事务将被回滚.
如果第二种情况为真,则默认情况下在事务中,它在完成之前不会锁定任何资源
如果第一种情况为真,则默认情况下事务保持锁定资源直到完成.
谢谢
Amit Aggarwal
我试图MERGE
通过Neo4JPHP 使用语句生成数据库.我的所有查询都在使用MERGE
; 但是,它每次都会生成单独的节点,导致大量重复.
查询在单个事务中运行.我删除了周围的代码以专注于查询:
$transaction = $client->beginTransaction();
while(...) {
$pq = new Query($client, 'MERGE (n:Page {url:"'.$page.'"}) SET n.title="'.$title.'"');
$transaction->addStatements(array($pageQuery));
$h1Query = new Query($client, 'MATCH (n:Page {url:"'.$page.'"}) SET n.h1s = "['.implode(", ", $h1s).']"');
$transaction->addStatements(array($h1Query));
$scriptQuery = new Query($client, 'MATCH (n:Page {url:"'.$page.'"}) MERGE (n)-[:CONTAINS_SCRIPT]->(s:Script {url:"'.$s.'"})');
$transaction->addStatements(array($scriptQuery));
$styleQuery = new Query($client, 'MATCH (n:Page {url:"'.$page.'"}) MERGE (n)-[:CONTAINS_STYLESHEET]->(s:StyleSheet {url:"'.$s.'"})');
$transaction->addStatements(array($styleQuery));
$otherPageQuery = new Query($client, 'MATCH (n:Page {url:"'.$page.'"}) MERGE (n)-[:LINKS_TO]->(m:Page {url:"'.$match.'"})');
$transaction->addStatements(array($otherPageQuery));
}
$transaction->commit();
Run Code Online (Sandbox Code Playgroud)
现在,在几页之后运行它,它会产生6个相同的Page
s 副本,一个带有title
和h1s
元素,其余没有. …
我在Neo4php中创建了如下关系
$src->relateTo($dst, 'FRIENDS')
->setProperty('duration', '5')
->save();
Run Code Online (Sandbox Code Playgroud)
我希望这种关系不是指导的.如果我没有错,我们可以在Cypher中做到这一点
create n-[:FRIENDS]-m
Run Code Online (Sandbox Code Playgroud)
VS
create n-[:FRIENDS]->m
Run Code Online (Sandbox Code Playgroud)
在Neo4jphp怎么样?我们可以将"relatedTo"设置为双向关系吗?