此文章是vip文章,如何查看?  

1,点击链接获取密钥 http://nicethemes.cn/product/view29882.html

2,在下方输入文章查看密钥即可立即查看当前vip文章


在node中使用neo4j

  • 时间:
  • 浏览:
  • 来源:互联网

Neo4j简介

Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。程序员工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中——但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。
Neo4j因其嵌入式、高性能、轻量级等优势,越来越受到关注。

图形数据结构

在一个图中包含两种基本的数据类型:Nodes(节点) 和 Relationships(关系)。Nodes 和 Relationships 包含key/value形式的属性。Nodes通过Relationships所定义的关系相连起来,形成关系型网络结构。

在node中使用neo4j,代码示例:

const neo4j = require('neo4j-driver').v1
const db = 地址
const dbuser = 用户名
const dbpassword = 密码

// 连接数据库
const driver = neo4j.driver(db, neo4j.auth.basic(dbuser, dbpassword))

// 具体示例,这里的例子是查询某个node的关系网络
async function f () {
// 查询语句
  const statement = [
    'match (p1:Person {uid: $uid})',
    'call apoc.path.expand(p1, $directedRelationship,"Person",1,$nLayer) yield path as pp',
    'return pp'
  ]
  // 变量
  params = {
    uid: "abc",
    directedRelationship: "KNOWS>",
    nLayer: 2
  }
// 启动查询
  const session = driver.session()
  const result = await session.run(statement.join(' '), params)

// 对返回结果作处理
  let paths = []
  result.records.forEach(record=>{
    let path = []
    record.get('pp').segments.forEach(segment=>(
      path.push(segment.start.properties),
        path.push(segment.relationship.type),
        path.push(segment.end.properties)
    ))
    paths.push(path)
  })
  console.log(paths)
  return paths
}

总结
安装neo4j, 获取用户名,密码
想要在js中应用neo4j, 首先要安装neo4j-driver这个库
熟悉neo4j的查询语言cypher
如果需要有一些比较复杂的操作,还需要安装apoc,利用这个插件可以写一些比较高端的语言

参考资料:
https://github.com/philippkueng/node-neo4j

https://github.com/neo4j/neo4j-javascript-driver#readme

https://www.jianshu.com/p/8b9b49e9e3cf

http://codingisforeveryone.com.au/wp-content/uploads/2018/05/Neo4j高级应用技术系列-APOC-2-Expand-Procedures-v1.pdf

本文链接http://element-ui.cn/news/show-611958.aspx