MySQL Shell API8.0.31
MySQL产品的统一开发接口 |
一个集合是一个容器,可以用来在MySQL数据库中存储文档。更多…
方法 |
|
CollectionAdd | 添加(…) |
创建文档添加处理程序。更多… |
|
CollectionFind | 找到(…) |
创建可用于查找文档的处理程序。更多… |
|
CollectionModify | 修改(字符串searchCondition) |
创建集合更新处理程序。更多… |
|
CollectionRemove | 删除(字符串searchCondition) |
创建文档删除处理程序。更多… |
|
结果 | 方法createIndex(字符串的名字, JSON索引定义) |
在集合上创建索引。更多… |
|
未定义的 | dropIndex(字符串的名字) |
从集合中删除索引。 |
|
结果 | replaceOne(字符串id,文档文档) |
用新文档替换现有文档。更多… |
|
结果 | addOrReplaceOne(字符串id,文档文档) |
替换或添加集合中的文档。更多… |
|
文档 | getOne(字符串id) |
从集合中获取具有给定_id的文档。更多… |
|
结果 | removeOne(字符串id) |
删除具有给定_id值的文档。更多… |
|
整数 | 数() |
返回集合中的文档数量。 |
|
继承自DatabaseObject | |
字符串 | getName() |
返回此数据库对象的名称。
|
|
对象 | getSession() |
返回此数据库对象的Session对象。
|
|
对象 | getSchema() |
返回此数据库对象的Schema对象。
|
|
保龄球 | existsInDatabase() |
验证此对象是否存在于数据库中。
|
|
附加继承成员 |
|
继承的属性DatabaseObject | |
字符串 | 的名字 |
此数据库对象的名称。 |
|
对象 | 会话 |
此数据库对象的Session对象。 |
|
对象 | 模式 |
此数据库对象的Schema对象。 |
|
一个集合是一个容器,可以用来在MySQL数据库中存储文档。
Document是一组键和值对,由JSON对象表示。
CollectionAdd添加 | ( | ... | ) |
创建文档添加处理程序。
集合 | .添加(…) |
. execute () |
此函数接收要添加到集合中的一个或多个文档定义。文档缓存在内部列表中,并在调用execute()方法时添加到集合中。
文档定义可以通过两种方式提供:
添加多个文档有三种方法:
要添加,每个文档都必须有一个名为'_id'的字符串属性,最好有一个通用唯一标识符(UUID)作为值。如果'_id'属性缺失,它将自动设置为内部生成的UUID。
执行添加操作,将文档添加到目标集合。
使用现有文档列表添加文档
在单个调用中为每个文档使用单独的参数添加文档添加(…)
使用链式调用添加文档添加(…)
JSON作为文档表达式
文档可以用JSON表达式表示,如下所示:
CollectionFind找到 | ( | ... | ) |
创建可用于查找文档的处理程序。
集合 | ([searchCondition]) |
[.fields(…)) | |
[.groupBy(…)[具有(条件)]] | |
[.sort(…)) | |
[.limit (numberOfDocs) [.offset(数量)]] | |
[.lockShared ([lockContention]) | .lockExclusive ([lockContention])]< tr > < td > < / td > < td >(。绑定(名称、值)) | |
.execute() |
设置搜索条件,以标识要从所有者检索的文档集合.如果未指定搜索条件,将对集合中的所有文档执行查找操作。
查询条件支持参数绑定。
此函数设置要从匹配此查找操作的条件的每个文档检索的字段。
字段被定义为字符串值,其中包含定义要检索的字段的表达式。
可以使用下面的任何方法设置要检索的字段:
为在聚合函数操作中要考虑的记录设置条件。
如果使用,则CollectionFind操作将返回按已定义标准排序的记录。
每个定义的排序标准都遵循以下格式:
名称[ASC | DESC]
如果没有指定排序顺序,则默认使用ASC。
如果使用,操作最多返回numberOfDocs文档。
如果使用,第一个数量记录将不包括在结果中。
当调用此函数时,所选文档将被锁定以进行写操作,它们可以在不同的会话上检索,但不允许更新。
当当前事务被提交或回滚时,所获得的锁将被释放。
如果另一个会话包含对匹配文档的排他锁,lockcompete参数定义操作的行为。
lockcompete可以使用以下常量指定:
lockcompete也可以使用以下字符串文字指定(不区分大小写):
如果没有指定lockcompete或指定默认值,则如果另一个会话已经对匹配文档持有排他锁,则操作将阻塞,直到该锁被释放为止。
如果lock争用设置为NOWAIT,而另一个会话已经对匹配文档持有排他锁,则操作不会阻塞,并将生成错误。
如果lockcompete被设置为SKIP_LOCKED,并且另一个会话已经对匹配的文档持有排他锁,那么操作将不会阻塞,只返回那些没有排他锁的文档。
此操作仅在事务中有意义。
当调用此函数时,选中的文档将被锁定以进行读操作,它们将不能被其他会话检索。
当当前事务被提交或回滚时,所获得的锁将被释放。
如果另一个会话包含对匹配文档的锁,lockcompete参数定义操作的行为。
lockcompete可以使用以下常量指定:
lockcompete也可以使用以下字符串文字指定(不区分大小写):
如果没有指定lockcompete或default,则如果另一个会话已经对匹配文档持有锁,则操作将阻塞。
如果lock争用设置为NOWAIT,而另一个会话已经持有匹配文档上的锁,则操作不会阻塞,并将生成错误。
如果lockcompete被设置为SKIP_LOCKED,而另一个会话已经持有匹配文档上的锁,则操作不会阻塞,只返回那些没有锁的文档。
此操作仅在事务中有意义。
将给定值绑定到具有指定名称的占位符。
如果名称所指示的占位符不存在,则会引发错误。
对于每个使用的占位符必须调用此函数一次,否则在调用execute()方法时将引发错误。
使用所有配置的选项执行find操作。
使用字段选择列表
使用单独的字段选择参数
使用投影表达式
CollectionModify修改 | ( | 字符串 | searchCondition | ) |
创建集合更新处理程序。
集合 | .modify (searchCondition) |
(。集(属性,值)) | |
[.unset(…)) | |
[.patch(文档)] | |
(。一个rrayInsert(docPath, value)] | |
(。一个rrayAppend(docPath, value)]< tr > < td > < / td > < td > [.sort(…))< / td > < / tr > < tr > < td > < / td > < td > [.limit (numberOfDocs)] < / td > < / tr > < tr > < td > < / td > < td >(。绑定(名称、值)]< / td > < / tr > < tr > < td > < / td > < td > . execute () < / td > < / tr > |
searchCondition | 用于标识要更新的文档的表达式。 |
创建一个处理程序来更新集合中的文档。
此函数必须提供一个条件,所有符合条件的文档将被更新。
要更新所有文档,请设置一个总是求值为true的条件,例如'1'。
向修改处理程序中添加一个操作,以设置选择筛选器和限制中包含的文档的属性。
除非使用表达式,否则接收的值将以文本的方式设置到文档中。
当使用表达式时,将在服务器上求值,并将结果值设置到文档中。
要定义一个表达式使用:
这个表达也可以用于参数绑定.
一旦execute方法被调用,属性的添加将在集合的文档上完成。
从集合中的文档中删除属性。
一旦execute()方法被调用,属性删除将在集合的文档上执行。
根据补丁JSON对象对文档执行修改。
这个函数添加了一个更新集合文档的操作,该补丁操作遵循JSON Merge patch RFC7386中描述的算法。
类调用中指定的筛选器所匹配的字段将使用补丁JSON对象从集合中的文档中添加、更新或删除字段修改()函数。
要执行的操作取决于在补丁JSON对象中定义的属性:
特别注意事项:
一旦execute()方法被调用,补丁操作将在集合的文档上执行。
向修改处理程序中添加一个操作,以将值插入到选择筛选器和限制中包含的文档的数组属性中。
一旦execute()方法被调用,值的插入将在集合的文档上完成。
将一个操作添加到修改处理程序中,以将值附加到选择筛选器和限制中包含的文档的数组属性中。
每个定义的排序标准都遵循以下格式:
名称[ASC | DESC]
如果没有指定排序顺序,则默认使用ASC。
此方法通常与limit结合使用,以固定要更新的文档数量。
此方法通常与sort方法结合使用,以固定要更新的文档数量。
将给定值绑定到具有指定名称的占位符。
如果名称所指示的占位符不存在,则会引发错误。
对于每个使用的占位符必须调用此函数一次,否则在调用execute()方法时将引发错误。
使用配置的筛选器和限制执行添加到处理程序中的更新操作。
CollectionRemove删除 | ( | 字符串 | searchCondition | ) |
创建文档删除处理程序。
集合 | .remove (searchCondition) |
[.sort(…)) | |
[.limit (numberOfDocs)) | |
(。绑定(名称、值)) | |
. execute () |
为删除集合上的文档创建处理程序。
此函数必须提供一个条件,所有符合条件的文档将从集合中删除。
要删除所有文档,请设置一个总是计算值为true的条件,例如'1'。
searchCondition支持参数绑定。
每个定义的排序标准都遵循以下格式:
名称[ASC | DESC]
如果没有指定排序顺序,则默认使用ASC。
此方法通常与limit结合使用,以固定要删除的文档数量。
设置要删除的文档的限制。
此方法通常与sort方法结合使用,以固定要删除的文档数量。
将给定值绑定到具有指定名称的占位符。
如果名称所指示的占位符不存在,则会引发错误。
对于每个使用的占位符必须调用此函数一次,否则在调用execute()方法时将引发错误。
使用配置的筛选器和限制执行文档删除。
结果方法createIndex | ( | 字符串 | 的名字, |
JSON | indexDefinition | ||
) |
在集合上创建索引。
的名字 | 要创建的索引的名称。 |
indexDefinition | 带有索引信息的JSON文档。 |
该函数将使用indexDefinition中提供的信息在集合上创建索引。
indexDefinition是一个JSON文档,包含以下信息:
单个index_field描述由以下字段组成:
只有当'type'设置为'GEOJSON'时,'options'和'srid'字段才能且必须出现。
只有当'type'是BINARY(N), CHAR(N), DATE, DATETIME, TIME, DECIMAL(M[,D]), SIGNED [INTEGER]或UNSIGNED [INTEGER]中的任何一个时,'array'字段才会出现。
结果replaceOne | ( | 字符串 | id, |
文档 | 医生 | ||
) |
结果addOrReplaceOne | ( | 字符串 | id, |
文档 | 医生 | ||
) |
替换或添加集合中的文档。
id | 要替换的文档的标识符。 |
医生 | 新文件。 |
替换用给定id标识的文档。如果没有找到与给定id匹配的文档,则将指定的文档添加到集合中。
此操作只会影响一个文档。
文档的id保持不变,如果新文档包含不同的id,它将被忽略。
在集合上定义的任何约束(唯一键)都适用于替换和添加操作:
文档getOne | ( | 字符串 | id | ) |
从集合中获取具有给定_id的文档。
id | 要检索文档的标识符。 |