MySQL Shell API8.0.31
MySQL产品的统一开发接口
方法|全体成员名单
类引用

对象上更新文档的操作集合更多…

方法

CollectionModify 修改(字符串searchCondition)
设置搜索条件,以在所有者上标识要更新的文档集合更多…
CollectionModify (字符串属性,值值)
设置或更新集合中文档的属性。更多…
CollectionModify 设置(字符串属性[,字符串属性,…])
从集合中的文档中删除属性。更多…
CollectionModify 设置(列表属性)
从集合中的文档中删除属性。更多…
CollectionModify 合并文档(文档)
将从文档获取的属性添加到集合中的文档中。更多…
CollectionModify 补丁文档(文档)
根据补丁JSON对象对文档执行修改。更多…
CollectionModify arrayAppend(String docPath, Value)
将值追加到集合的文档中的数组属性中。更多…
CollectionModify arrayInsert(String docPath, Value)
将值插入集合文档中数组属性的特定位置。更多…
CollectionModify arrayDelete(字符串docPath)
删除集合文档中数组属性中特定位置的值。更多…
CollectionModify 排序sortCriteria(列表)
设置添加到处理程序的更新操作应该按照的文档顺序进行。更多…
CollectionModify 限制(整数numberOfRows)
设置要由添加到处理程序的操作更新的文档的限制。更多…
CollectionModify 绑定(字符串名称,值值)
将值绑定到用于此操作的特定占位符CollectionModify对象。更多…
结果 执行()
使用配置的筛选器和限制执行添加到处理程序中的更新操作。更多…

详细描述

对象上更新文档的操作集合

一个CollectionModify对象上更新文档的操作集合,它是通过修改函数集合类。

另请参阅
集合

成员功能文档10bet官方网站

修改()

CollectionModify修改 字符串 searchCondition

设置搜索条件,以在所有者上标识要更新的文档集合

参数
searchCondition 用于标识要更新的文档的表达式。

创建一个处理程序来更新集合中的文档。

返回
CollectionModify对象。

此函数必须提供一个条件,所有符合条件的文档将被更新。

要更新所有文档,请设置一个总是求值为true的条件,例如'1'。

方法链接

该函数在调用Collection.modify(searchCondition)时自动调用。

调用此函数后,可以调用以下函数:

设置()

CollectionModify 字符串 属性
价值 价值

设置或更新集合中文档的属性。

参数
属性 具有要设置项的文档路径的字符串。
价值 要在指定属性上设置的值。
返回
CollectionModify对象。

向修改处理程序中添加一个操作,以设置选择筛选器和限制中包含的文档的属性。

  • 如果该属性不存在于文档中,则将用给定的值添加它。
  • 如果该属性已经存在于文档中,则将用给定的值更新它。

为值使用表达式

除非使用表达式,否则接收的值将以文本的方式设置到文档中。

当使用表达式时,将在服务器上求值,并将结果值设置到文档中。

要定义一个表达式使用:

mysqlx.expr(表达)

这个表达也可以用于参数绑定

属性添加将在集合的文档上执行execute ()方法被调用。

方法链接

该函数可以在以下情况下调用多次:

另请参阅
使用示例载于execute ()

设置()(1/2)

CollectionModify设置 字符串 属性[,字符串属性,…]

设置()(2/2)

CollectionModify设置 列表 属性

从集合中的文档中删除属性。

参数
属性 包含要删除属性的文档路径的列表。
返回
CollectionModify对象。

对于属性列表中的每个属性,向修改处理程序中添加一个操作,以删除选择筛选器和限制中包含的文档上的属性。

属性删除将在集合的文档上执行execute ()方法被调用。

方法链接

该函数可以在以下情况下调用多次:

另请参阅
使用示例载于execute ()

合并()

CollectionModify合并 文档 文档

将从文档获取的属性添加到集合中的文档中。

参数
文档 将从中合并属性的文档。
返回
CollectionModify对象。

此函数添加一个操作,将在文档中定义的集合文档中不存在的所有属性添加到集合的文档中。

属性添加将在集合的文档上执行execute ()方法被调用。

注意
此函数将在未来的版本中删除,请使用补丁()函数来代替。

方法链接

该函数可以在以下情况下调用多次:

另请参阅
使用示例载于execute ()

补丁()

CollectionModify补丁 文档 文档

根据补丁JSON对象对文档执行修改。

参数
文档 要在补丁进程上使用的JSON对象。
返回
CollectionModify对象。

这个函数添加了一个更新集合文档的操作,该补丁操作遵循JSON Merge patch RFC7386中描述的算法。

类调用中指定的筛选器所匹配的字段将使用补丁JSON对象从集合中的文档中添加、更新或删除字段修改()函数。

要执行的操作取决于在补丁JSON对象中定义的属性:

  • 任何值等于null的属性如果存在将被删除。
  • 任何值不等于null的属性都将被更新。
  • 如果不存在,则添加值不为null的任何属性。

特别注意事项:

  • 文档的_id是不可变的,因此它不会受到补丁操作的影响,即使它包含在补丁JSON对象中。
  • 补丁JSON对象接受表达式对象作为值。如果使用,将在服务器端对它们进行评估。

补丁操作将在集合的文档上执行execute ()方法被调用。

方法链接

该函数可以在以下情况下调用多次:

另请参阅
使用示例载于execute ()

arrayAppend ()

CollectionModifyarrayAppend 字符串 docPath
价值 价值

将值追加到集合的文档中的数组属性中。

参数
docPath 一个文档路径,它标识将在其中添加值的数组属性。
价值 要附加的值。
返回
CollectionModify对象。

将一个操作添加到修改处理程序中,以将值附加到选择筛选器和限制中包含的文档的数组属性中。

方法链接

该函数可以在以下情况下调用多次:

另请参阅
使用示例载于execute ()

arrayInsert ()

CollectionModifyarrayInsert 字符串 docPath
价值 价值

将值插入集合文档中数组属性的特定位置。

参数
docPath 标识数组属性和将插入值的位置的文档路径。
价值 要插入的值。
返回
CollectionModify对象。

向修改处理程序中添加一个操作,以将值插入到选择筛选器和限制中包含的文档的数组属性中。

值的插入将在集合的文档上完成execute ()方法被调用。

方法链接

该函数可以在以下情况下调用多次:

另请参阅
使用示例载于execute ()

arrayDelete ()

CollectionModifyarrayDelete 字符串 docPath

删除集合文档中数组属性中特定位置的值。

参数
docPath 标识要删除值的数组属性和位置的文档路径。
返回
CollectionModify对象。

向修改处理程序中添加一个操作,以从选择筛选器和限制中包含的文档的数组属性中删除值。

属性删除将在集合的文档上执行execute ()方法被调用。

注意
此函数将在未来的版本中删除,请使用设置()函数来代替。

方法链接

该函数可以在以下情况下调用多次:

另请参阅
使用示例载于execute ()

sort ()

CollectionModify排序 列表 sortCriteria

设置添加到处理程序的更新操作应该按照的文档顺序进行。

返回
CollectionModify对象。

每个定义的排序标准都遵循以下格式:

名称[ASC | DESC]

如果没有指定排序顺序,则默认使用ASC。

此方法通常与limit结合使用,以固定要更新的文档数量。

方法链接

此函数只能在以下情况下调用一次:

另请参阅
使用示例载于execute ()

限制()

CollectionModify限制 整数 numberOfDocs

设置要由添加到处理程序的操作更新的文档的限制。

参数
numberOfDocs 影响更新操作的文档数量。
返回
CollectionModify对象。

此方法通常与sort方法结合使用,以固定要更新的文档数量。

方法链接

此函数只能在以下情况下调用一次:

调用此函数后,可以调用以下函数:

另请参阅
使用示例载于execute ()

bind ()

CollectionModify绑定 字符串 的名字
价值 价值

将值绑定到用于此操作的特定占位符CollectionModify对象。

参数
的名字 值要绑定到的占位符的名称。
价值 要绑定到占位符上的值。
返回
CollectionModify对象。

将给定值绑定到具有指定名称的占位符。

如果名称所指示的占位符不存在,则会引发错误。

此函数必须为每个使用的占位符调用一次,否则将引发错误execute ()方法被调用。

方法链接

这个函数可以在调用之前被多次调用execute ()

调用此函数后,可以调用以下函数:

另请参阅
使用示例载于execute ()

execute ()

结果执行

使用配置的筛选器和限制执行添加到处理程序中的更新操作。

返回
CollectionResultset一结果对象,该对象可用于检索更新操作的结果。

方法链接

此函数可以在该类上的任何其他函数之后调用修改()

更新操作将按照添加它们的顺序执行。

例子

修改多个属性

Var结果=集合。修改('name = "brian"').set('alias', 'bri').set('last_name', 'black').set('age', mysqlx.expr('13+1')).execute();
打印('设置受影响的行:',结果。affectedItemsCount ' \ n ');

使用数组值修改属性

Var结果=集合。修改('name = "brian"').set('hobbies', mysqlx.expr(':list')).bind('list', ['soccer', 'dance', 'read']).execute();
打印('设置受影响的行:',结果。affectedItemsCount ' \ n ');

取消属性设置

Var结果=集合。修改('name = "brian"').unset('last_name').execute();
打印('未设置受影响的行:',结果。affectedItemsCount ' \ n ');

使用数组取消设置多个属性

Var结果=集合。修改('name = "brian"').unset(['alias', 'age']).execute();
打印('未设置受影响的行:',结果。affectedItemsCount ' \ n ');

修补多个属性

Var结果=集合。修改('name = "brian"').patch({'last_name': 'white', 'age': 14, 'alias': 'bw', 'girlfriends': ['lois', 'jane'] }).execute();
打印('受补丁影响的行:',结果。affectedItemsCount ' \ n ');

附加到数组属性

Var结果=集合。修改('name = "brian"').arrayAppend('girlfriends', 'cloe').execute();
打印('数组附加受影响的行:',结果。affectedItemsCount ' \ n ');

插入到数组属性中

Var结果=集合。修改('name = "brian"').arrayInsert('girlfriends[1]', 'samantha').execute();
打印('数组插入受影响的行:',结果。affectedItemsCount ' \ n ');

分类并设置一个限制

Var结果=集合。修改('age = 15')。集('sample', 'in_limit').sort(['name']).limit(2).execute();
打印('受影响的行:',结果。affectedItemsCount ' \ n ');