GraphGists

查找最佳 NoSQL 分发版

动机

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

感谢您的阅读!

© . All rights reserved.