• ArangoDB关键知识点汇总大全(不定时更新)


    二、ArangoDB数据模型与索引

    2.1 数据模型

    ArangoDB的数据模型分为数据库(databse)、集合(collection)、文档(document),分别与RDBMS中的数据库、表、行对应。

    数据类型包括:string、boolean、number、array、document/object

    Collection:分为document collection、edge collection两种类型。其中documentcollection在Graph中又被称为vertex collection,edge collection只在Graph中使用。

    Document: ArangoDB的document数据在展现层使用JSON格式,但物理存储时采用的是二进制的VelocyPack(一种高效紧凑的二进制序列化和存储格式)。document由一个主键(_key)、_id、_rev、0个或者多个属性组成,其中_key作为sharding的依据。Edgecollection中的文档要比documentcollection中的文档多两个特殊的属性(_from、_to)。

    2.2 索引

    ArangoDB中的索引类型分为:Primary、Edge、Hash、Skiplist、Persistent、Geo、Fulltext。ArangoDB会自动对文档中的_id、_key、_from、_to字段建立索引。

    基本文档数据模型

    arangodb也有数据库(db), 表(collection)、记录(document)的概念,document上是有用户保存的,例如:

    还额外有_id和_key,_rev

    注:key可以自动生成也可以用户指定(不能存中文),而_id 等于表名加_key, _rev用的少。

    在这里插入图片描述

    图数据模型的存储结构

    图模型的数据模型其实就是基于文档模型,只不过是节点放在document类型的表,和边信息放在edge类型的表。通过edge表里的_from 和_to字段指向的document类型表里的文档id来关联起的关系。 一切的处理是基于这两个表,就像mysql里的表一样,能支持想象不到的很多用处。 这两种表结构类似,唯一不同的是后者多了两个_from和_to字段用于指定起始和终点节点的_id 。
    在这里插入图片描述
    在这里插入图片描述

    如何使用aql

    (解释:在tablename表里面查询name都等于Alice并且age等1,2或是3的记录
    let arr = [1,2,3]
    
    for p in tablename
    
    filter p.name == 'Alice'
    
    filter contains(arr, p.age)
    
    return p
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    (解释:在graph_large图里面查询起始点为nodes/id1,最长长度为3,最短长度为2的所有路径)
    for v,e,p in 2..4
    
    any
    
    'nodes/id1'
    
    graph 'graph_large'
    
    return e
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
  • 相关阅读:
    分布式天花板?阿里百万架构师的ZK+Dubbo笔记,颠覆认知
    七天.NET 8操作SQLite入门到实战 - 第六天后端班级管理相关接口完善和Swagger自定义配置
    在JavaScript中利用代码来实现ATM的效果,具有存钱,取钱,查看余额,退出功能
    centos7下根目录扩容
    最优化理论与方法1
    Elastic-Job中Zookeeper的作用
    新手如何提高自媒体账号变现能力?
    redis之分片集群
    【爬虫】第二部分 urllib_handler处理器
    一篇全网最详细的可视化图表Python库,学到就赚到了
  • 原文地址:https://blog.csdn.net/qq_39659876/article/details/132963005