【问题标题】:Does ArangoDB "know" what attributes exist in a collection? (shapes data)ArangoDB 是否“知道”集合中存在哪些属性? (形状数据)
【发布时间】:2015-08-16 15:22:47
【问题描述】:

有一个方法可以对文档进行采样并确定其结构:
https://docs.arangodb.com/cookbook/AccessingShapesData.html

据说,您不能查询内部形状数据。但是检查一些文档只会估计使用了哪些属性键,或者必须扫描整个集合。

所以我的问题是:数据库是否存储了内部某处存在的属性?至少对于通用属性?

如果是,为什么不能查询该数据?它比输出大致相同信息的用户定义函数要高效得多。

如果能“免费”发现方案就好了:
http://som-research.uoc.edu/tools/jsonDiscoverer/#/

【问题讨论】:

    标签: arangodb


    【解决方案1】:

    每当一个属性首先在集合中使用时,ArangoDB 都会将其存储在内部某个地方。这意味着它确实会跟踪集合中使用了哪些属性。但是有几个问题:

    • 属性名称是全局存储的,但嵌套的属性名称是分开存储的(例如:user.name 将存储为username)。从纯粹看单独的属性名称部分,ArangoDB 将不知道它们在数据中以哪些组合使用

    • 只要在集合中首次使用属性名称,就会存储属性名称。目前 ArangoDB 不跟踪何时不再使用属性。然后属性名称仍会出现在属性列表中

    在这些限制下,可以提供属性列表,但我不确定这会有多大用处。

    【讨论】:

    • 感谢您的洞察力!你是对的,如果没有实际组合的上下文,它并不是很有用。还有一个问题:全局是指每个数据库、每个集合还是服务器范围?
    • 属性名按集合存储。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-21
    • 1970-01-01
    • 2017-02-23
    • 1970-01-01
    • 1970-01-01
    • 2010-12-06
    • 2021-02-22
    相关资源
    最近更新 更多