Neo4J的第一步:如何编写最基本的操作

时间:2013-08-02 20:25:29

标签: neo4j

我刚安装了Neo4J,运行良好。我正在寻找一个非常简单的教程(实际上很少有命令行),我将能够:

  1. 创建一些数据(至少2个节点和它们之间的一个关系);
  2. 查询并查看最近创建的数据;
  3. 更新此示例数据的属性;
  4. 删除创建的数据; 示例代码可以在Cypher和/或Gremlin中,在Web管理控制台中运行,在默认的空数据库中。
  5. 我在官方网站,它的文档,书籍和教程上看了很多,而且它们看起来都很复杂:有些甚至驱使我创建一个Java应用程序(我甚至不使用Java)。就像SQL初学者一样,我想从最基本的界面管理面板测试最基本的数据库操作。不明白为什么,this thread因为没有建设性而被关闭(!?)。

    提前感谢一堆。

3 个答案:

答案 0 :(得分:3)

CREATE ( blagus  { firstname: 'Alexander', lastname: 'Blagus'} )

CREATE (celso  { firstname: 'Celso', lastname: 'Oliveira'}), (celso) - [r:WORKS_WITH] - > (blagus)

return blagus, celso, r

在此示例中,有2个不同的查询,第一个创建具有2个属性的节点。第二个与第一个完全相同,并创建了从celso到blagus的关系

START n=node(*) RETURN "The number of nodes in your graph is "+count(*)+" !" as total;

返回一个名为total的变量,其值为'图中的节点数为2!',它与select count(*)

基本相同
START me=node(1) MATCH me<--friend
RETURN friend

假设我们使用这个简单的数据库作为示例,这将返回节点celso考虑关系的方向

  START n=node(*)
    MATCH n
    WHERE n.firstname! ='Alexander'
    RETURN n

此查询匹配属性firstname等于Alexander的所有节点。请注意,“!”符号确保只考虑具有此类属性的节点,从而防止出错。

START n=node(*)
MATCH n
WHERE n.firstname! ='Alexander'
SET n.age = '34'
RETURN n

此查询匹配具有属性firstname Alexander的节点,并添加另一个属性“age”,其值为“34”

START n = node(*)
MATCH n WHERE n.firstname! = "Geraldo" DELETE n

此查询匹配firstname等于“Geraldo”的所有节点并删除它们。

START n = node(*)
MATCH n-[r]-()
DELETE n, r

此命令获取所有节点和关系并删除它们。

希望它有帮助!

答案 1 :(得分:2)

非常简短的事情将是:

create ({name:"alice"})-[:likes]->({name:"bob"});

match n-[r]->m return n,r,m;

match alice where alice.name! = 'alice' set alice.lastname='Alison';

match alice where alice.lastname! = 'Alison' return alice;

match n-[r]->m delete r,n,m;

这都是使用neo4j 2.0.0M3的语法。

有一本免费的graph databases书,其中包含对cypher的精彩介绍。书中印刷的例子不是开箱即用的。我把working examples放到了网上。当然,还有more on the neo4j website

答案 2 :(得分:1)

很多很棒的资源here - 特别是免费的书。没有使用过这个,但看起来它可能会有所帮助 - 基本上通过修复破坏的测试来学习Neo4j:Neo4j-tutorial