创建一个滚动索引

发布 /api/atlas/v2/groups/{groupId}/clusters/{clusterName}/index

以滚动方式在名称标识的集群上创建索引。以这种方式创建索引,支持从从节点开始,一次在一个副本集节点上作为单节点进行索引构建。以这种方式创建索引,至少需要一次副本集选举。要使用此资源,请求的服务账户或 API 密钥必须具有项目数据访问管理员角色。

基于副本集构建的滚动索引

路径参数

  • groupId 字符串 必需

    用于标识项目的唯一 24-十六进制数字字符串。 使用 /groups 端点检索身份验证的用户有权访问权限的所有项目。

    注意:群组和项目是同义词。您的群组 ID 与项目 ID 相同。对于现有群组,群组/项目 ID 保持不变。资源和相应的端点使用“群组”一词。

    格式应符合以下模式:^([a-f0-9]{24})$

  • 集群名称 字符串 必需

    可读的标签,用于标识 MongoDB Cloud 创建索引的集群。

    格式应符合以下模式:^[a-zA-Z0-9][a-zA-Z0-9-]*$

查询参数

  • envelope 布尔

    指示应用程序是否将响应包装在envelope JSON 对象中的标志。某些 API 客户端无法访问 HTTP 响应标头或状态代码。要修复此问题,请在查询中设置 Envelope=true。返回结果列表的端点将结果对象用作 envelope。应用程序将状态参数添加到响应正文中。

    默认值为false

  • pretty 布尔

    指示响应正文是否应采用 prettyprint 格式的标记。

    默认值为false

    Prettyprint
application/vnd.atlas.2023-01-01+json

body 必需

要在指定群集上创建的滚动索引。

  • 排序规则 对象

    一个或多个设置,用于指定比较该索引内字符串的语言特定的规则。

    排序规则选项
    隐藏排序规则属性 显示排序规则属性 对象
    • 替代方案 字符串

      将空格和标点符号作为基本字符处理以进行比较的方法。"non-ignorable" 会将空格和标点符号视为基本字符。"shifted" 不会, MongoDB Cloud 在 "strength" > 3 时会区分这些字符。

      值为 non-ignorableshifted。默认值为 non-ignorable

    • backwards 布尔

      指示带有变音符号的字符串是否从后面排序的标志。 某些法语词典以这种方式对字符串进行排序。true 将从后往前进行比较。false 将从前往后进行比较。

      默认值为false

    • caseFirst 字符串

      在三级比较期间处理大小写差异排序顺序的方法。"upper" 将大写字母排序在小写字母之前。"lower" 将小写字母排序在大写字母之前。"off" 与“lower”类似,但略有不同。

      值为 loweroffupper。默认值为 off

    • caseLevel 布尔

      指示 "strength" : 1"strength" : 2 时是否包括大小写比较的标志。

      • true - 在比较中包括大小写
        • 强度级别:1 - 基本字符和大小写。
        • 强度级别:2 - 基本字符、变音符号(以及可能的其他从节点(secondary node from replica set)差异)和大小写。
      • false — 比较中不包括大小写。

      默认值为false

    • locale 字符串 必需

      表示本地化语言的 Unicode 国际组件 (ICU) 代码。要指定简单的二进制比较,设立"locale" : "simple"

      值为 afsqamarhyasazbnbebsbs_Cyrlbgmycachrzhzh_Hanthrcsdanldzenen_USen_US_POSIX, eo, et, ee, fo, fil, fi_FI, fr, fr_CA, gl, ka, de, de_AT, elguhahawhehihuisigsmnidgait, ja, kl, kn, kk, km, kok, ko, ky, lk, lo, lv, li, ltdsblbmkmsmlmtmrmnnesenbnn, or, om, ps, fa, fa_AF, pl, pt, pa, ro, ru, sr, sr_Latn, siskslesswsvtatethbototrukhsburugviwaecyyiyozusimple

    • maxVariable 字符串

      该字段指示当 "alternate" : "shifted"."punct" 同时忽略空格和标点符号时可以忽略哪些字符。"space" 忽略空格。这对于 "alternate" : "non-ignorable" 没有影响。

      值为 punctspace

    • normalization 布尔

      指示是否检查文本是否需要规范化然后执行的标志。大多数文本不需要这种规范化处理。

      true 将检查是否完全规范化并执行规范化以比较文本。false 不会进行检查。

      默认值为false

    • numericOrdering 布尔

      该标志指示是将数字序列作为数字还是作为字符串进行比较。true 将作为数字进行比较,结果为 10 > 2false 将作为字符串进行比较。其结果是 "10" < "2"

      默认值为false

    • strength integer(int32)

      对单词进行排序时执行的比较程度。

      MongoDB Cloud 接受以下与比较级别和比较方法相对应的数值。

      • 1 - "Primary"(主要)- 仅比较基本字符,忽略其他差异,例如变音符号和大小写。
      • 2 — "Secondary" — 比较基本字符 (主节点 (primary node in the replica set)) 和变音符号 (从节点(secondary node from replica set))。主要差异优先于从节点(secondary node from replica set)差异。
      • 3 - “第三级”- 比较基本字符(主节点 (primary node in the replica set))、变音符号(从节点(secondary node from replica set))以及大小写和变体(第三级)。基本字符之间的差异优先于从节点(secondary node from replica set)差异,二级差异优先于三级差异。
      • 4 - "Quaternary" - 比较特定使用案例,以在 1 到 3 级别忽略标点符号时考虑标点符号,或用于处理日文文本。
      • 5 — “相同” — 比较仲裁开关的特定使用案例。

      最小值为 1,最大值为 5。默认值为 3

  • 集合 字符串 必需

    MongoDB Cloud 为其创建索引的集合的人类可读标签。

  • db 字符串 必需

    人类可读的数据库标签,用于保存 MongoDB Cloud 在其上创建索引的集合。

  • 密钥 大量[对象]

    包含一个或多个对象的列表,这些对象描述要创建索引的参数。

    键值对,用于将要索引的参数设置为键,将索引类型设置为其值。要创建多键索引,请在此数组中将每个参数列出在其自己的对象中。

    隐藏键属性 显示键属性 对象
    • * 字符串 additionalProperties

      键值对,用于将要索引的参数设置为键,将索引类型设置为其值。要创建多键索引,请在此数组中将每个参数列出在其自己的对象中。

      索引类型
  • 选项 对象

    决定 MongoDB Cloud 如何创建此 MongoDB 索引的一项或多项设置。

    索引选项
    隐藏选项属性 显示选项属性 对象
    • 2dsphereIndexVersion integer(int32)

      应用于 2dsphere索引的索引版本号。MongoDB 3.2 及更高版本使用版本 3。使用此选项可覆盖默认版本号。此选项仅适用于 2dsphere索引类型。

      默认值为3

    • 背景 布尔

      指示MongoDB是否应在背景构建索引的标志。这适用于运行特征兼容性版本4.0 或更早版本的MongoDB数据库。运行FCV 4.2 或更高版本的 MongoDB数据库使用优化的构建进程构建索引。此进程仅在构建进程的开始和结束时持有独占锁。构建进程的其余部分是交错读取和写入操作。运行FCV 4.2 或更高版本的 MongoDB数据库忽略此选项。此选项适用于所有索引类型。

      默认值为false

    • integer(int32)

      应用于位置数据的存储地理哈希(Geohash)值的精度数。此选项仅适用于2d索引类型。

      默认值为26

    • bucketSize integer(int32)

      对位置值群组的单位数。您可以将指定单位数量内的位置值群组在同一个存储桶中。此选项仅适用于 geoHaystack索引类型。

      MongoDB 5.0 删除了 geoHaystack 索引和 geoSearch 命令。

    • 列存储投影 对象

      列存储投影文档允许包含或排除子模式模式。不能将包含和排除声明结合起来。因此,可以为以下任一值:1 或 true 以包含该字段以及以递归方式为索引的前缀的所有字段 0 或 false 以排除该字段以及以递归方式为前缀的所有字段索引。

      隐藏列存储投影属性 显示列存储投影属性 对象
      • * integer(int32) additionalProperties

        列存储投影文档允许包含或排除子模式模式。不能将包含和排除声明结合起来。因此,可以为以下任一值:1 或 true 以包含该字段以及以递归方式为索引的前缀的所有字段 0 或 false 以排除该字段以及以递归方式为前缀的所有字段索引。

    • default_ language 字符串

      用于确定停用词列表以及词干分析器和分词器规则的人类语言。此选项使用小写英文名称或 ISO 639-2 代码接受支持的语言。如果将此参数设立为 "none",则文本搜索将使用简单分词,没有停用词列表,也没有词干提取。此选项仅适用于文本索引类型。

      默认值为english

    • expireAfterSeconds integer(int32)

      MongoDB在生存时间 (TTL)索引中保留文档的秒数。

    • 隐藏 布尔

      用于确定索引是否对查询规划器隐藏的标志。隐藏索引不会作为查询计划选择的一部分进行评估。

      默认值为false

    • language_override 字符串

      人类可读标签,用于标识包含文档覆盖语言的文档参数。此选项仅适用于文本索引类型。

      默认值为language

    • Max integer(int32)

      用于限制经度和纬度值的包含上边界。此选项仅适用于 2d索引类型。

      默认值为180

    • min integer(int32)

      下限包含边界以限制经度和纬度值。此选项仅适用于 2d索引类型。

      默认值为-180

    • 名称 字符串

      标识此索引的人类可读标签。此选项适用于所有索引类型。

    • 部分过滤器表达式 对象

      限制过滤索引表达式索引引用的文档的规则。所有MongoDB索引类型都接受 partialFilterExpression 选项。partialFilterExpression 可以包含以下表达式:

      • 相等("parameter" : "value" 或使用 $eq操作符)
      • "$exists": true ,最大值:$gt$gte$lt$lte 比较
      • $type
      • $and (仅限顶层)此选项适用于所有索引类型。
      隐藏 partialFilterExpression 属性 显示 partialFilterExpression 属性 对象
      • * 对象 additionalProperties

        限制过滤索引表达式索引引用的文档的规则。所有MongoDB索引类型都接受 partialFilterExpression 选项。partialFilterExpression 可以包含以下表达式:

        • 相等("parameter" : "value" 或使用 $eq操作符)
        • "$exists": true ,最大值:$gt$gte$lt$lte 比较
        • $type
        • $and (仅限顶层)此选项适用于所有索引类型。
    • 稀疏 布尔

      指示索引是否引用仅具有指定参数的文档的标志。这些索引使用的空间较少,但在某些情况下(例如排序时),其行为会有所不同。以下索引类型默认为稀疏索引并忽略此选项:2dsphere2dgeoHaystacktext

      复合索引包括一个或多个带有 2dsphere 键和其他键类型的索引,只有 2dsphere索引参数决定索引引用的文档。如果运行MongoDB 3.2 或更高版本,请使用部分索引。此选项适用于所有索引类型。

      默认值为false

    • 引擎加密 对象

      为特定索引设立的存储引擎。该值只能在创建时设立。该选项采用以下格式:"storageEngine" : { "<storage-engine-name>" : "<options>" } MongoDB在创建索引时验证存储引擎配置选项。为了支持副本采用不同存储引擎的副本集, MongoDB在复制期间将这些选项记录到oplog中。此选项适用于所有索引类型。

      MongoDB Server存储引擎
      隐藏 storageEngine 属性 显示 storageEngine 属性 对象
      • * 对象 additionalProperties

        为特定索引设立的存储引擎。该值只能在创建时设立。该选项采用以下格式:"storageEngine" : { "<storage-engine-name>" : "<options>" } MongoDB在创建索引时验证存储引擎配置选项。为了支持副本采用不同存储引擎的副本集, MongoDB在复制期间将这些选项记录到oplog中。此选项适用于所有索引类型。

        MongoDB Server存储引擎
    • textIndexVersion integer(int32)

      应用于此文本索引的版本。MongoDB 3.2 及更高版本使用版本 3。使用此选项可覆盖默认版本号。此选项仅适用于文本索引类型。

      默认值为3

    • 权重 对象

      所提供索引参数的相对重要性。该对象将其表示为索引参数和要应用该参数的权重的键/值对。您可以为部分或全部索引参数指定权重。权重必须是介于 1 和 99、999 之间的整数。MongoDB 5.0 及更高版本只能将权重应用文本索引。

      隐藏权重属性 显示权重属性 对象
      • * 对象 additionalProperties

        所提供索引参数的相对重要性。该对象将其表示为索引参数和要应用该参数的权重的键/值对。您可以为部分或全部索引参数指定权重。权重必须是介于 1 和 99、999 之间的整数。MongoDB 5.0 及更高版本只能将权重应用文本索引。

响应

  • 202 application/vnd.atlas.2023-01-01+json

    已接受

  • 400 application/json

    错误请求。

    隐藏响应属性 显示响应属性 对象
    • badRequestDetail 对象

      错误请求详情。

      隐藏 BadRequestDetail 属性 显示 BadRequestDetail 属性 对象
      • 字段 大量[对象]

        描述客户端请求中的所有违规行为。

        隐藏字段属性 显示字段属性 对象
        • 描述 字符串 必需

          关于请求元素错误的原因的描述。

        • 字段 字符串 必需

          指向请求正文中字段的路径。

    • 详细信息 字符串

      描述导致每种错误类型的具体条件或原因。

    • 错误 integer(int32) 必需

      与此错误一起返回的 HTTP 状态代码。

      外部文档
    • 错误代码 字符串 必需

      返回此错误时附带应用程序错误代码。

    • 参数 大量[对象]

      用于提供更多错误信息的参数。

    • 原因 字符串

      随此错误返回的应用程序错误消息。

  • 401 application/json

    未经授权。

    隐藏响应属性 显示响应属性 对象
    • badRequestDetail 对象

      错误请求详情。

      隐藏 BadRequestDetail 属性 显示 BadRequestDetail 属性 对象
      • 字段 大量[对象]

        描述客户端请求中的所有违规行为。

        隐藏字段属性 显示字段属性 对象
        • 描述 字符串 必需

          关于请求元素错误的原因的描述。

        • 字段 字符串 必需

          指向请求正文中字段的路径。

    • 详细信息 字符串

      描述导致每种错误类型的具体条件或原因。

    • 错误 integer(int32) 必需

      与此错误一起返回的 HTTP 状态代码。

      外部文档
    • 错误代码 字符串 必需

      返回此错误时附带应用程序错误代码。

    • 参数 大量[对象]

      用于提供更多错误信息的参数。

    • 原因 字符串

      随此错误返回的应用程序错误消息。

  • 403 application/json

    Forbidden.

    隐藏响应属性 显示响应属性 对象
    • badRequestDetail 对象

      错误请求详情。

      隐藏 BadRequestDetail 属性 显示 BadRequestDetail 属性 对象
      • 字段 大量[对象]

        描述客户端请求中的所有违规行为。

        隐藏字段属性 显示字段属性 对象
        • 描述 字符串 必需

          关于请求元素错误的原因的描述。

        • 字段 字符串 必需

          指向请求正文中字段的路径。

    • 详细信息 字符串

      描述导致每种错误类型的具体条件或原因。

    • 错误 integer(int32) 必需

      与此错误一起返回的 HTTP 状态代码。

      外部文档
    • 错误代码 字符串 必需

      返回此错误时附带应用程序错误代码。

    • 参数 大量[对象]

      用于提供更多错误信息的参数。

    • 原因 字符串

      随此错误返回的应用程序错误消息。

  • 404 application/json

    未找到。

    隐藏响应属性 显示响应属性 对象
    • badRequestDetail 对象

      错误请求详情。

      隐藏 BadRequestDetail 属性 显示 BadRequestDetail 属性 对象
      • 字段 大量[对象]

        描述客户端请求中的所有违规行为。

        隐藏字段属性 显示字段属性 对象
        • 描述 字符串 必需

          关于请求元素错误的原因的描述。

        • 字段 字符串 必需

          指向请求正文中字段的路径。

    • 详细信息 字符串

      描述导致每种错误类型的具体条件或原因。

    • 错误 integer(int32) 必需

      与此错误一起返回的 HTTP 状态代码。

      外部文档
    • 错误代码 字符串 必需

      返回此错误时附带应用程序错误代码。

    • 参数 大量[对象]

      用于提供更多错误信息的参数。

    • 原因 字符串

      随此错误返回的应用程序错误消息。

  • 429 application/json

    请求过多。

    隐藏响应属性 显示响应属性 对象
    • badRequestDetail 对象

      错误请求详情。

      隐藏 BadRequestDetail 属性 显示 BadRequestDetail 属性 对象
      • 字段 大量[对象]

        描述客户端请求中的所有违规行为。

        隐藏字段属性 显示字段属性 对象
        • 描述 字符串 必需

          关于请求元素错误的原因的描述。

        • 字段 字符串 必需

          指向请求正文中字段的路径。

    • 详细信息 字符串

      描述导致每种错误类型的具体条件或原因。

    • 错误 integer(int32) 必需

      与此错误一起返回的 HTTP 状态代码。

      外部文档
    • 错误代码 字符串 必需

      返回此错误时附带应用程序错误代码。

    • 参数 大量[对象]

      用于提供更多错误信息的参数。

    • 原因 字符串

      随此错误返回的应用程序错误消息。

  • 500 application/json

    内部服务器错误。

    隐藏响应属性 显示响应属性 对象
    • badRequestDetail 对象

      错误请求详情。

      隐藏 BadRequestDetail 属性 显示 BadRequestDetail 属性 对象
      • 字段 大量[对象]

        描述客户端请求中的所有违规行为。

        隐藏字段属性 显示字段属性 对象
        • 描述 字符串 必需

          关于请求元素错误的原因的描述。

        • 字段 字符串 必需

          指向请求正文中字段的路径。

    • 详细信息 字符串

      描述导致每种错误类型的具体条件或原因。

    • 错误 integer(int32) 必需

      与此错误一起返回的 HTTP 状态代码。

      外部文档
    • 错误代码 字符串 必需

      返回此错误时附带应用程序错误代码。

    • 参数 大量[对象]

      用于提供更多错误信息的参数。

    • 原因 字符串

      随此错误返回的应用程序错误消息。

POST /api/atlas/v2 /groups/{groupId}/clusters/{clusterName}/ 索引
atlas api rollingIndex createGroupClusterIndexRollingIndex --help
import (
	"os"
	"context"
	"log"
	sdk "go.mongodb.org/atlas-sdk/v20230101001/admin"
)

func main() {
	ctx := context.Background()
	clientID := os.Getenv("MONGODB_ATLAS_CLIENT_ID")
	clientSecret := os.Getenv("MONGODB_ATLAS_CLIENT_SECRET")

	// See https://dochub.mongodb.org/core/atlas-go-sdk-oauth
	client, err := sdk.NewClient(sdk.UseOAuthAuth(clientID, clientSecret))

	if err != nil {
		log.Fatalf("Error: %v", err)
	}

	params = &sdk.CreateGroupClusterIndexRollingIndexApiParams{}
	sdkResp, httpResp, err := client.RollingIndexApi.
		CreateGroupClusterIndexRollingIndexWithParams(ctx, params).
		Execute()
}
curl --include --header "Authorization: Bearer ${ACCESS_TOKEN}" \
  --header "Accept: application/vnd.atlas.2023-01-01+json" \
  --header "Content-Type: application/json" \
  -X POST "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/clusters/{clusterName}/index" \
  -d '{ <Payload> }'
curl --user "${PUBLIC_KEY}:${PRIVATE_KEY}" \
  --digest --include \
  --header "Accept: application/vnd.atlas.2023-01-01+json" \
  --header "Content-Type: application/json" \
  -X POST "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/clusters/{clusterName}/index" \
  -d '{ <Payload> }'
2dspere Index
{
  "db": "sample_airbnb",
  "keys": [
    {
      "property_type": "1"
    }
  ],
  "options": {
    "name": "PartialIndexTest",
    "partialFilterExpression": {
      "limit": {
        "$gt": 900
      }
    }
  },
  "collation": {
    "locale": "af",
    "strength": 3,
    "alternate": "non-ignorable",
    "backwards": false,
    "caseFirst": "lower",
    "caseLevel": false,
    "maxVariable": "punct",
    "normalization": false,
    "numericOrdering": false
  },
  "collection": "accounts"
}
部分索引
{
  "db": "sample_airbnb",
  "keys": [
    {
      "property_type": "1"
    }
  ],
  "options": {
    "name": "PartialIndexTest",
    "partialFilterExpression": {
      "limit": {
        "$gt": 900
      }
    }
  },
  "collation": {
    "locale": "af",
    "strength": 3,
    "alternate": "non-ignorable",
    "backwards": false,
    "caseFirst": "lower",
    "caseLevel": false,
    "maxVariable": "punct",
    "normalization": false,
    "numericOrdering": false
  },
  "collection": "accounts"
}
Sparse Index
{
  "db": "sample_airbnb",
  "keys": [
    {
      "test_field": "1"
    }
  ],
  "options": {
    "name": "SparseIndexTest",
    "sparse": true
  },
  "collation": {
    "locale": "af",
    "strength": 3,
    "alternate": "non-ignorable",
    "backwards": false,
    "caseFirst": "lower",
    "caseLevel": false,
    "maxVariable": "punct",
    "normalization": false,
    "numericOrdering": false
  },
  "collection": "accounts"
}
响应示例 (400)
{
  "error": 400,
  "detail": "(This is just an example, the exception may not be related to this endpoint) No provider AWS exists.",
  "reason": "Bad Request",
  "errorCode": "VALIDATION_ERROR"
}
响应示例 (401)
{
  "error": 401,
  "detail": "(This is just an example, the exception may not be related to this endpoint)",
  "reason": "Unauthorized",
  "errorCode": "NOT_ORG_GROUP_CREATOR"
}
响应示例 (403)
{
  "error": 403,
  "detail": "(This is just an example, the exception may not be related to this endpoint)",
  "reason": "Forbidden",
  "errorCode": "CANNOT_CHANGE_GROUP_NAME"
}
响应示例 (404)
{
  "error": 404,
  "detail": "(This is just an example, the exception may not be related to this endpoint) Cannot find resource AWS",
  "reason": "Not Found",
  "errorCode": "RESOURCE_NOT_FOUND"
}
响应示例 (429)
{
  "error": 429,
  "detail": "(This is just an example, the exception may not be related to this endpoint)",
  "reason": "Too Many Requests",
  "errorCode": "RATE_LIMITED"
}
响应示例 (500)
{
  "error": 500,
  "detail": "(This is just an example, the exception may not be related to this endpoint)",
  "reason": "Internal Server Error",
  "errorCode": "UNEXPECTED_ERROR"
}