[关闭]
@EggGump 2018-01-31T10:53:21.000000Z 字数 2701 阅读 539

(胡兵) null值选择,in操作符,为已有节点创建关系

字符串 upper,lower,substring,replace,aggregation聚类 max,min,sum,avg,count,关系函数startnode,endnode,id,type,数据库的备份与恢复,索引:可提高应用程序性能,unique 属性值唯一性限制,在java中创建数据(eclipse) 原生java API(这一部分还没学完)
未分类


在此输入正文

  • null排除或选择
    MATCH (e:Employee)
    WHERE e.id IS NULL
    RETURN e.id,e.name,e.sal,e.deptno

  • in语法
    MATCH (e:Employee)
    WHERE e.id IN [123,124]
    RETURN e.id,e.name,e.sal,e.deptno

  • 为已有节点创建关系(王阳指导)
    match(a:Employee),(b:Employee) where a.Name='ZhaoPeng' and b.Name='Bob'
    create(a)-[r:Like]->(b) return r

函数

  • 字符串 upper,lower,substring,replace
    match(e:Employee)
    return e.Id,substring(e.Name,0,2),e.Sal,e.DeptNo
  • aggregation聚类 max,min,sum,avg,count
    match(e:Employee) return count(*) 返回查询行数
    match(e:Employee) return max(e.Sal),min(e.Sal)返回工资最大最小值
    match(e:Employee) return avg(e.Sal),sum(e.Sal)返回工资的均值与总值
  • 关系函数startnode,endnode,id,type
    match(a)-[r:Like]-(b)
    return startnode(r) 查找关系的开始节点
    match(a)-[r:Like]-(b)
    return id(r),type(r) 返回关系的ID和类型,这里的类型就是它的标签
  • 数据库的备份与恢复
    备份:手动把data\*.db中的所有文件打包起来存到别的地方
    恢复:手动把刚才的打包文件再解压到*.db文件中。。有点扯蛋,我还以为会有什么很厉害的方
  • 索引:可提高应用程序性能
    create index on :Employee(Name)
    Drop index on:Employee(Name)
  • unique 属性值唯一性限制
    create constraint on (e:Employee)
    assert e.Id is unique
    此时,再插入一个相同的Id就会出错
    drop constraint on (e:Employee)
    assert e.Id is unique
    丢弃先前的限制,此时又可以插入相同的数据了

在java中创建数据(eclipse) 原生java API

1.创建一个java project
2.将neo4j里面的lib文件夹中所有的jar包导入到项目中。
3.编写代码,运行即可创建一个数据库,经验证可用

  1. //public Neo4JJavaAPIDBOperation.java 主文件
  2. package com.neusoft.www.neo4j.java.example;
  3. import java.io.File;
  4. import org.neo4j.graphdb.GraphDatabaseService;
  5. import org.neo4j.graphdb.Node;
  6. import org.neo4j.graphdb.Relationship;
  7. import org.neo4j.graphdb.Transaction;
  8. import org.neo4j.graphdb.factory.GraphDatabaseFactory;
  9. public class Neo4JJavaAPIDBOperation {
  10. public static void main(String[] args) {
  11. File directoryDB = new File("C:/Neo4jDB") ;
  12. GraphDatabaseFactory dbFactory = new GraphDatabaseFactory() ;
  13. GraphDatabaseService db = dbFactory.newEmbeddedDatabase(directoryDB) ;
  14. try(Transaction tx = db.beginTx()) {
  15. //Perform DB operations
  16. //new node
  17. Node javaNode = db.createNode(MyLabels.JAVA) ;
  18. Node scalaNode = db.createNode(MyLabels.SCALA) ;
  19. //set node properties
  20. String property = "Property" ;
  21. for(int i = 0; i < 4; i ++) {
  22. javaNode.setProperty(property+i, i);
  23. scalaNode.setProperty(property+i, i);
  24. }
  25. //add node relationship
  26. Relationship relationship = javaNode.createRelationshipTo(scalaNode, MyRelationship.JVM_LANGIAGES) ;
  27. for(int i = 0; i < 3; i ++) {
  28. relationship.setProperty(property + 1, i);
  29. }
  30. tx.success();
  31. }catch(Exception e) {}
  32. System.out.println("Done successfully") ;
  33. }
  34. }
  35. //public MyLabels.java 这是一个枚举
  36. package com.neusoft.www.neo4j.java.example;
  37. import org.neo4j.graphdb.Label;
  38. public enum MyLabels implements Label{
  39. JAVA,SQL,SCALA ;
  40. }
  41. //这也是一个枚举
  42. package com.neusoft.www.neo4j.java.example;
  43. import org.neo4j.graphdb.RelationshipType;
  44. public enum MyRelationship implements RelationshipType {
  45. JVM_LANGIAGES,NON_JVM_LAVGIAGES ;
  46. }

Cypher API示例

准备工作与前面相同,下面是编代码
java

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注