开发者社区> 问答> 正文

ArangoDB 和 Neo4j 的区别?

ArangoDB 和 Neo4j 的区别?主要解释一下在 perform graph queries 方面的区别

展开
收起
OSC开源社区 2024-05-29 22:03:40 98 0
1 条回答
写回答
取消 提交回答
  • SQL无法处理表达图节点之间关系所需的语义,因此图数据库必须提供其他方式来访问数据。
    第一个选择是编写小程序,即所谓的“路径遍历”。在 ArangoDB 中,您使用 Javascript;在 Neo4j Java 中,一般方法非常相似。
    编程让您可以自由地做任何您想做的事情。那挺好的。对于标准用例,编程可能需要花费太多精力。因此,ArangoDB 和 neo4j 都提供了一种声明性语言——neo4j 有“Cypher”,ArangoDB 有“ArangoDB 查询语言”——AQL。两者都实现了蓝图标准,以便您可以在 Java 中使用“Gremlin”作为查询语言。我们已经提到,ArangoDB 是一个多模型数据库:AQL 涵盖文档和图形,它提供对联接、列表、变量的支持,等等。

    以下示例取自neo4j网站:

    “例如,下面的查询在索引中查找名为 John 的用户,然后遍历图表查找 John 的朋友的朋友(尽管不是他的直接朋友),然后返回 John 和找到的任何朋友的朋友。

    START john=node:node_auto_index(name = ‘John’)
    MATCHjohn-[:friend]->()-[:friend]->fof
    RETURNjohn, fof ”
    

    相同的查询在 AQL 中如下所示:

    FOR t IN TRAVERSAL(users, friends, “users/john”, “outbound”,
    {minDepth: 2}) RETURN t.vertex._key
    
    The result is:
    [ “maria”, “steve” ]
    

    您会看到 Cypher 描述模式,而 AQL 描述连接。在内部,ArangoDB 有一个图形函数库——这些函数返回路径和路径的集合,或者在连接中使用这些集合。

    2024-05-30 12:38:05
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载