Docs 菜单

Docs 主页启动和管理 MongoDBMongoDB Atlas

使用分区属性类型

在此页面上

  • 支持的分区属性类型
  • 支持的转换

注意

指定 path时:

  • 指定分区属性的数据类型。

  • 确保分区属性类型与要解析的数据类型相匹配。

  • 使用 delimiter 中指定的分隔符。

在指定相同类型的属性时,请执行以下任一操作:

  • 在属性之间添加常量分隔符。

  • 使用正则表达式来描述搜索模式。要了解更多信息,请参阅不支持的解析函数

下表列出了分区属性支持的数据类型、文件名以及每种数据类型的path示例:

数据类型
例子
string
将文件名解析为字符串。

文件名: /employees/949-555-0195.json

path: /employees/{phone string}

在前面的示例中,Data Federation 将phone解释为字符串。

提示

另请参阅:

int
将文件名解析为整数。

文件名: /zipcodes/90210.json

path: /zipcodes/{zipcode int}

在前面的示例中,Data Federation 将zipcode解释为整数。

isodate
解析 RFC3339 中的文件名8601 格式为 ISO- 格式日期。

文件名: /metrics/20060102.json

  • path: /metrics/{startTimestamp isodate}

  • path: /metrics/{startTimestamp isodate('20060102')}

在前面的示例中,对于第一个路径,Data Federation 会将startTimestamp解释为ISODate 。对于第二条路径,Data Federation 将startTimestamp解释为指定格式的ISODate ,并且仅匹配指定格式的文件名。

如果您未指定特定格式(如上面第一个ISODate属性路径示例所示),Atlas Data Federation 默认采用以下日期格式的分区:

1"2006-01-02T15:04:05Z07:00"
2"2006-01-02T15:04:05.000000Z07:00"
3"2006-01-02"
4"2006-01-02T15:04:05.000000-0700"
5"2006-01-02T15:04:05-0700"
6"2006-01-02T15:04Z07:00"
7"2006-01-02T15:04-0700"
8"2006-01-02Z07:00"
9"2006-01-02-0700"
10"2006102T15:04:05.000000Z07:00"
11"20060102T15:04:05.000000-0700"
12"20060102T15:04:05Z07:00"
13"20060102T15:04:05-0700"
14"20060102T15:04Z07:00"
15"20060102T15:04-0700"
16"20060102Z07:00"
17"20060102-0700"
18"20060102"

如果希望指定可提高性能的格式,则必须使用特殊值来指示属性在日期中的确切位置,例如日 (02 )、月 (01 )、年 (2006 )等。要了解有关用于指定日期的格式和值的更多信息,请参阅 格式化时间或日期 。如果指定的格式不在 RFC3339 格式,则必须使用带有特殊值的 regex 来指示日期属性的位置。有关示例,请参阅 从 ISODate 创建分区。

epoch_secs
将文件名解析为 Unix 时间戳(以秒为单位)。

文件名: /metrics/1549046112.json

path: /metrics/{startTimestamp epoch_secs}

在前面的示例中,Data Federation 将startTimestamp解释为 Unix 时间戳(以秒为单位)。

epoch_millis
将文件名解析为 Unix 时间戳(以毫秒为单位)。

文件名: /metrics/1549046112000.json

path: /metrics/{startTimestamp epoch_millis}

在前面的示例中,Data Federation 将startTimestamp解释为 Unix 时间戳(以毫秒为单位)。

objectid
将文件名解析为ObjectId。

文件名: /metrics/507f1f77bcf86cd799439011.json

path: /metrics/{objid objectid}

在前面的示例中,Data Federation 将objid解释为ObjectId。

uuid
将文件名解析 为二进制子类型 的 UUID。4

文件名: /metrics/3b241101-e2bb-4255-8caf-4136c566a962.json

path: /metrics/{myUuid uuid}

在前面的示例中,Data Federation 将 解释为myUuid UUID 为二进制子类型4 。

注意

Atlas Data Federation 支持 Package Syntax 用于文件名路径中的正则表达式。

Atlas Data Federation 将分区属性转换为 BSON 类型 path将 解析为文件名时。稍后向 S3 写入数据时,必须在将数据转换为字符串后使用 BSON 类型。下表显示:

  • 分区属性类型以及Data Federation将其转换为的BSON类型。

  • 要转换为字符串以便稍后写入 S3 BSON 数据类型。

分区属性类型
已解析的BSON类型
BSON类型
string
  • UTF-8 字符串

  • null*

  • UTF-8 字符串

  • null

int
  • 64 位整型

  • null

  • 32 位整数

  • 64 位整型

  • null(作为没有填充的字符串)

isodate
  • UTC 日期时间

  • null

  • UTC 日期时间(作为 ISO-8601 格式字符串)

  • null

objectid
  • ObjectId (十六进制编码的字符串)

  • null

uuid
← 定义 S3 数据的路径