GraphGists

动机

NoSQL 运动始于 2009 年初,并且正在迅速发展。由于存在许多 NoSQL 类别和分布,此应用程序提供了一种交互方式来查找最适合的分布,例如学生的作业规格。

图的一个示例子集

%5BNeo4j%7Bbg:orange%7D%5D based on%3E%5BJava%5D,%20%5BNeo4j%5D is a%3E%5BGraph%20DB%5D,%20%5BNeo4j%5D has api for%3E%5BC%23%5D,%20%5BNeo4j%5D is licensed under%3E%5BGPL%20v3%5D,%20%5BNeo4j%5D current release%3E%5B2.0.0 RC1%5D,%20%5B2.0.0 RC1%5D previous release%3E%5B1.9.5%5D

用例

查找所有在 2013 年发布了当前版本的分布(我们希望确保使用更新的产品)

MATCH (year:Date)<-[:RELEASED_ON]-(release:Release)<-[:CURRENT_RELEASE]-(distribution:Distribution)
WHERE year.year = '2013'
RETURN distribution.name, release.version
ORDER BY distribution.name

查找具有特定许可证的所有分布(我们喜欢开源)

MATCH (distribution:Distribution)-[:IS_LICENSED_UNDER]->(licence:Licence)
WHERE licence.name =~ '.*GPL.*'
RETURN distribution.name, licence.name
ORDER BY distribution.name

查找支持 Java、.NET 和 ACID 事务的所有分布(我们需要这些功能)

START java=node:node_auto_index(name='Java'), NET=node:node_auto_index(name='.NET'), AT=node:node_auto_index(type='ACID transactions')
MATCH p=AllShortestPaths(java-[:HAS_API_FOR]-NET)
WITH head(tail(nodes(p))) AS distribution, AT
MATCH (distribution)-[:ALLOWS]->(AT)
RETURN distribution.name

查找所有 Neo4j 的版本(此时我们正在考虑使用 Neo4j,但我们要确保项目正在积极更新)

MATCH (neo:Distribution)-[:CURRENT_RELEASE|:PREVIOUS_RELEASE*..5]->(release:Release)
WHERE neo.name = 'Neo4j'
WITH release
MATCH (release)-[:RELEASED_ON]->(date)
RETURN release.version, date.year

感谢您的阅读!