ArangoDB 学习笔记 (3)命名规范

数据库名称

ArangoDB将始终使用名为_system的默认数据库启动用户可以在ArangoDB中创建其他数据库,前提是数据库名称符合以下约束:

 数据库名称只能包含字母az(允许小写和大写),数字09以及下划线(_)或短划线(-)符号这也意味着任何非ASCII数据库名称都不是允许。

数据库名称必须始终以字母开头。以下划线开头的数据库名称被视为系统数据库,用户不应创建或删除它们

数据库名称的最大允许长度为64个字节

数据库名称区分大小写

collection名称

通数据库名称

document keys

用户可以为他们保存的文档定义自己的密钥。文档密钥将与_key属性中的文档一起保存用户可以根据需要选择键值,前提是这些值符合以下限制:

  • _key必须是字符串值。不允许使用数字键,但可以将任何数值放入字符串中,然后可以将其用作文档键。
  • _key必须至少为1个字节,最多为254个字节。指定时不允许使用空键(尽管从文档中完全省略_key属性可能有效 
  • 它必须包含字母az(大写或小写),数字0-9或以下任何标点字符: _ - : . @ ( ) + ,= ; $ ! * ' %
  • 任何其他字符,尤其是多字节UTF-8序列,空格或标点字符都不能在键值内使用
  • _key在使用的集合中必须是唯一的

_key区分大小写,即myKeyMyKEY被认为是不同的键。

创建新文档时,指定文档密钥是可选的。如果用户未指定文档密钥,ArangoDB将自己创建文档密钥,因为每个文档都需要有密钥。

除了上述限制之外,不保证自动生成的文档密钥的格式和模式。因此,客户端应将自动生成的文档密钥视为不透明值,而不是依赖于它们的格式。

生成密钥的当前格式是包含数字的字符串。数值反映了时间顺序时间,因为稍后生成的_key值将包含比先前生成的_key值更高的数字。但是服务器生成的确切值是不可预测的。请注意,如果对_key属性进行排序,将使用字符串比较,这意味着"100"小于"99"等。

属性名称

  • 以下划线开头的属性名称被视为ArangoDB内部使用的系统属性。ArangoDB已将此类属性名称用于特殊目的:

    • _id用于包含文档的句柄
    • _key用于包含文档的用户定义密钥
    • _rev用于包含文档的修订号
    • 在边缘集合中,

      • _from
      • _to

      属性用于引用其他文档。

    将来可能会添加更多系统属性而不另行通知,因此最终用户应尽量避免使用以下划线开头的自己的属性名称。

  • 理论上,如果名称是有效的UTF-8字符串,则属性名称可以根据需要包括标点符号和特殊字符。为了获得最大的可移植性,应该避免使用特殊字符。例如,属性名称可能包含点符号,但点在JavaScript和AQL中具有特殊含义,因此在其中一种语言中使用此类属性名称时,最终用户需要引用属性名称。总的来说,使用所有语言中不需要引用/转义的属性名称可能会更好。这包括客户端使用的语言(例如Ruby,PHP),如果属性映射到那里的对象成员。

  • 在AQL查询中使用时,需要在反引号中包含以标记(@开头的属性名称,以区别于绑定变量。因此,我们不鼓励使用以@标记开头的属性,尽管它们在正确使用时仍然有效。
  • ArangoDB不会对属性名称强制实施长度限制。但是,长属性名称可能会在结果集等中使用更多内存。因此不鼓励使用长属性名称。
  • 属性名称区分大小写。
  • 不允许使用空名称(空字符串)的属性。

 

posted @ 2018-09-15 15:31  tutu_python  阅读(588)  评论(1)    收藏  举报