标签: neo4jphp

如何将值推送到属性数组Cypher-Neo4j

我是Neo4j的新手,我有两个节点user并且files有关系:contains,这个关系有一个属性id是一个数组,表示为

(:user)-[:contains{id:[12345]}]->(:files)
Run Code Online (Sandbox Code Playgroud)

但是我想id用值填充属性数组111114567 依次使用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)

我不知道如何顺序地将值填充到属性数组

请帮助,提前致谢

arrays neo4j cypher neo4jphp

20
推荐指数
2
解决办法
1万
查看次数

如何在neo4j中找到没有传入关系的节点

我有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)

我想找到没有老师的"学生"节点.即没有任何传入关系"教学"

请帮忙.

relationship neo4j cypher neo4jphp

6
推荐指数
2
解决办法
5896
查看次数

事务对neo4j数据库的意义是什么意思

我对期限交易有点困惑.假设在事务A中我们有两个命令C1和C2,并且在事务B中是相同的.现在两个事务同时进行,那么这些观察是否正确?

  1. 事务A C1和C2的所有命令将首先完成(假设A先输入),然后只执行事务B的命令.

  2. 可以执行事务A或B的任何命令,但保证如果任何事务的任何命令失败,那么该事务将被回滚.

  3. 如果第二种情况为真,则默认情况下在事务中,它在完成之前不会锁定任何资源

  4. 如果第一种情况为真,则默认情况下事务保持锁定资源直到完成.

谢谢

Amit Aggarwal

transactions neo4j neo4jphp

5
推荐指数
1
解决办法
1385
查看次数

Neo4j - 尽管使用合并重复

我试图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个相同的Pages 副本,一个带有titleh1s元素,其余没有. …

php transactions neo4j cypher neo4jphp

4
推荐指数
1
解决办法
803
查看次数

使用neo4jphp函数"relateTo"在两个节点之间创建双向关系

我在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"设置为双向关系吗?

neo4j neo4jphp

3
推荐指数
1
解决办法
2671
查看次数

标签 统计

neo4j ×5

neo4jphp ×5

cypher ×3

transactions ×2

arrays ×1

php ×1

relationship ×1