alter()

语法

domain.alter( <options> )

修改域的属性。

请参考 domain.setAttributes()

参数描述

  • options ( Object必填 )

需要修改的属性列表。

  • Groups:包含的复制组。

格式:Groups : [ 'data1', 'data2' ]

  • AutoSplit:自动切分。

格式:AutoSplit : true | false

Note:

  • 删除复制组前必须保证其不包含任何数据。
  • AutoSplit 的更改不对之前创建的集合和集合空间产生影响。

返回值

无返回值,出错抛异常,并输出错误信息,可以通过getLastErrMsg()获取错误信息或通过getLastError()获取错误码。关于错误处理可以参考常见错误处理指南

错误

错误码可能的原因解决方法
-154分区组不存在使用列表查看分区组是否存在
-215域已经在使用listDomains()查看域是否存在
-256域非空使用listCollections()查看域是否存在集合

错误码

示例

  • 首先创建一个域,包含两个复制组,开启自动切分
  1. > var domain = db.createDomain( 'mydomain', ['data1', 'data2'], { AutoSplit: true } )
  • 从域中删除一个复制组 data2,添加另一个复制组 data3,最后域中包含 data1 和 data3 两个复制组
  1. > domain.alter( { Groups: ['data1', 'data3'] } )
  • 首先创建一个域,包含一个复制组,复制组中包含表 foo.bar。
  1. > var domain = db.createDomain( 'mydomain', ['group1'] )
  • 从域中删除原复制组,添加另一个复制组,将因把拥有数据的 group1 从域中删除而报错
  1. > domain.alter( { Groups: ['group2'] } )
  2. (nofile):0 uncaught exception: -256
  3. Domain is not empty