你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
ContainerProxy 类
用于与特定数据库容器交互的接口。
此类不应直接实例化。 请改用 <xref:azure.cosmos.aio.database.DatabaseProxy.get_container_client> 方法获取现有容器,或使用 <xref:azure.cosmos.aio.database.DatabaseProxy.create_container> 方法创建新容器。
Azure Cosmos DB SQL API 数据库中的容器是文档的集合,其中每个文档都表示为项。
- 继承
-
builtins.objectContainerProxy
构造函数
ContainerProxy(client_connection: CosmosClientConnection, database_link: str, id: str, properties: Dict[str, Any] = None)
参数
- client_connection
- database_link
- id
- properties
变量
- id
- str
容器的 ID (名称)
- session_token
- str
容器的会话令牌。
方法
create_item |
在容器中创建项。 若要更新或替换现有项,请使用 upsert_item 方法。 |
delete_all_items_by_partition_key |
按分区键删除功能是一项异步后台操作,它允许你使用 Cosmos SDK 删除具有相同逻辑分区键值的所有文档。 按分区键删除操作限制为每秒最多消耗容器中可用 RU/s 总数的 10%。 这有助于限制此后台任务使用的资源。 |
delete_conflict |
从容器中删除指定的冲突。 如果容器中尚不存在冲突,则会引发异常。 |
delete_item |
从容器中删除指定项。 如果容器中尚不存在该项,则会引发异常。 |
get_conflict |
获取由冲突标识的 冲突。 |
get_throughput |
获取此容器的 ThroughputProperties 对象。 如果容器不存在任何 ThroughputProperties,则会引发异常。 |
list_conflicts |
列出容器中的所有冲突。 |
patch_item |
临时方法 如果指定项存在于容器中,则使用所提供的操作修补该项。 如果容器中尚不存在该项,则会引发异常。 |
query_conflicts |
返回与给定 查询匹配的所有冲突。 |
query_items |
返回与给定 查询匹配的所有结果。 可以在 FROM 子句中使用容器名称的任何值,但通常使用容器名称。 在下面的示例中,容器名称为“products”,别名为“p”,以便在 WHERE 子句中更轻松地引用。 查询响应中的响应延续标记。 有效值为正整数。 值 0 与不传递值相同, (默认没有限制) 。 :关键字 (keyword) int max_integrated_cache_staleness_in_ms:中集成缓存的最大缓存过期 毫秒。 对于配置为使用集成缓存(使用会话或最终一致性)的帐户,响应保证不会超过此值。 |
query_items_change_feed |
按修改顺序获取已更改的项的排序列表。 |
read |
读取容器属性。 |
read_all_items |
列出容器中的所有项。 |
read_item |
获取由项标识 的项。 |
replace_item |
如果指定的项存在于容器中,则替换指定项。 如果容器中尚不存在该项,则会引发异常。 |
replace_throughput |
替换容器的吞吐量。 如果容器不存在任何 ThroughputProperties,则会引发异常。 |
upsert_item |
插入或更新指定的项。 如果容器中已存在该项,则会替换该项。 如果该项尚不存在,则插入该项。 |
create_item
在容器中创建项。
若要更新或替换现有项,请使用 upsert_item 方法。
async create_item(body: Dict[str, Any], **kwargs: Any) -> Dict[str, Any]
参数
- pre_trigger_include
- str
要用作预操作触发器的触发器 ID。
- post_trigger_include
- str
要用作后操作触发器的触发器 ID。
- indexing_directive
- Union[int, IndexingDirective]
枚举可能的值,以指示是否应从索引中省略文档。 可能的值包括:0 表示 Default,1 表示 Exclude,或 2 表示 Include。
- enable_automatic_id_generation
- bool
如果不存在 ID,则启用自动 ID 生成。
- session_token
- str
用于会话一致性的令牌。
- etag
- str
ETag 值或通配符 (*)。 用于检查资源是否已更改,并根据 match_condition 参数指定的条件进行操作。
- match_condition
- MatchConditions
在 etag 上使用的匹配条件。
返回
表示新项的 dict。
返回类型
例外
具有给定 ID 的项已存在。
delete_all_items_by_partition_key
按分区键删除功能是一项异步后台操作,它允许你使用 Cosmos SDK 删除具有相同逻辑分区键值的所有文档。 按分区键删除操作限制为每秒最多消耗容器中可用 RU/s 总数的 10%。 这有助于限制此后台任务使用的资源。
async delete_all_items_by_partition_key(partition_key: str | int | float | bool, **kwargs: Any) -> None
参数
- pre_trigger_include
- str
要用作预操作触发器的触发器 ID。
- post_trigger_include
- str
要用作后操作触发器的触发器 ID。
- session_token
- str
用于会话一致性的令牌。
- etag
- str
ETag 值或通配符 (*)。 用于检查资源是否已更改,并根据 match_condition 参数指定的条件进行操作。
- match_condition
- MatchConditions
在 etag 上使用的匹配条件。
- response_hook
- Callable
使用响应元数据调用的可调用项。
返回类型
例外
具有给定 ID 的项已存在。
delete_conflict
从容器中删除指定的冲突。
如果容器中尚不存在冲突,则会引发异常。
async delete_conflict(conflict: str | Dict[str, Any], partition_key: str | int | float | bool, **kwargs: Any) -> None
参数
返回类型
例外
冲突未成功删除。
容器中不存在冲突。
delete_item
从容器中删除指定项。
如果容器中尚不存在该项,则会引发异常。
async delete_item(item: str | Dict[str, Any], partition_key: str | int | float | bool, **kwargs: Any) -> None
参数
- pre_trigger_include
- str
要用作预操作触发器的触发器 ID。
- post_trigger_include
- str
要用作后操作触发器的触发器 ID。
- session_token
- str
用于会话一致性的令牌。
- etag
- str
ETag 值或通配符 (*)。 用于检查资源是否已更改,并根据 match_condition 参数指定的条件进行操作。
- match_condition
- MatchConditions
在 etag 上使用的匹配条件。
返回类型
例外
项未成功删除。
容器中不存在该项。
get_conflict
获取由冲突标识的 冲突。
async get_conflict(conflict: str | Dict[str, Any], partition_key: str | int | float | bool, **kwargs: Any) -> Dict[str, Any]
参数
返回
表示检索到的冲突的 dict。
返回类型
例外
无法检索给定的冲突。
get_throughput
获取此容器的 ThroughputProperties 对象。
如果容器不存在任何 ThroughputProperties,则会引发异常。
async get_throughput(**kwargs: Any) -> ThroughputProperties
参数
返回
容器的 ThroughputProperties。
返回类型
例外
容器不存在吞吐量属性,或者无法检索吞吐量属性。
list_conflicts
列出容器中的所有冲突。
list_conflicts(**kwargs: Any) -> AsyncItemPaged[Dict[str, Any]]
参数
- max_item_count
- int
枚举操作中要返回的最大项数。
使用响应元数据调用的可调用项。
返回
冲突的 AsyncItemPaged (听写) 。
返回类型
例外
具有给定 ID 的项已存在。
patch_item
临时方法 如果指定项存在于容器中,则使用所提供的操作修补该项。
如果容器中尚不存在该项,则会引发异常。
async patch_item(item: str | Dict[str, Any], partition_key: str | int | float | bool, patch_operations: List[Dict[str, Any]], **kwargs: Any) -> Dict[str, Any]
参数
- filter_predicate
- str
要应用于修补操作的条件筛选器。
- pre_trigger_include
- str
要用作预操作触发器的触发器 ID。
- post_trigger_include
- str
要用作后操作触发器的触发器 ID。
- session_token
- str
用于会话一致性的令牌。
- etag
- str
ETag 值或通配符 (*)。 用于检查资源是否已更改,并根据 match_condition 参数指定的条件进行操作。
- match_condition
- MatchConditions
在 etag 上使用的匹配条件。
- response_hook
- Callable
使用响应元数据调用的可调用项。
返回
表示完成修补操作后的项的听写。
返回类型
例外
修补操作失败,或者具有给定 ID 的项不存在。
query_conflicts
返回与给定 查询匹配的所有冲突。
query_conflicts(query: str | Dict[str, Any], **kwargs: Any) -> AsyncItemPaged[Dict[str, Any]]
参数
- max_item_count
- int
枚举操作中要返回的最大项数。
使用响应元数据调用的可调用项。
返回
冲突的 AsyncItemPaged (听写) 。
返回类型
例外
具有给定 ID 的项已存在。
query_items
返回与给定 查询匹配的所有结果。
可以在 FROM 子句中使用容器名称的任何值,但通常使用容器名称。 在下面的示例中,容器名称为“products”,别名为“p”,以便在 WHERE 子句中更轻松地引用。
查询响应中的响应延续标记。 有效值为正整数。 值 0 与不传递值相同, (默认没有限制) 。 :关键字 (keyword) int max_integrated_cache_staleness_in_ms:中集成缓存的最大缓存过期
毫秒。 对于配置为使用集成缓存(使用会话或最终一致性)的帐户,响应保证不会超过此值。
query_items(query: str | Dict[str, Any], **kwargs: Any) -> AsyncItemPaged[Dict[str, Any]]
返回
(听写) 项的 AsyncItemPaged。
返回类型
例外
具有给定 ID 的项已存在。
示例
获取尚未停产的所有产品:
import json
async for item in container.query_items(
query='SELECT * FROM products p WHERE p.productModel <> "DISCONTINUED"'
):
print(json.dumps(item, indent=True))
用于获取已停产的所有产品的参数化查询:
discontinued_items = container.query_items(
query='SELECT * FROM products p WHERE p.productModel = @model AND p.productName="Widget"',
parameters=[dict(name="@model", value="DISCONTINUED")],
)
async for item in discontinued_items:
print(json.dumps(item, indent=True))
query_items_change_feed
按修改顺序获取已更改的项的排序列表。
query_items_change_feed(**kwargs: Any) -> AsyncItemPaged[Dict[str, Any]]
参数
- is_start_from_beginning
- bool
获取更改源是应从 (true) 开始还是从当前 (false) 开始。 默认情况下,它从当前 (false) 开始。
- partition_key_range_id
- str
可以针对特定的分区键范围执行 ChangeFeed 请求。 这用于跨多个使用者并行处理更改源。
- continuation
- str
e_tag值用作读取更改源的延续。
- max_item_count
- int
枚举操作中要返回的最大项数。
使用响应元数据调用的可调用项。
返回
(听写) 项的 AsyncItemPaged。
返回类型
例外
具有给定 ID 的项已存在。
read
读取容器属性。
async read(**kwargs: Any) -> Dict[str, Any]
参数
- populate_partition_key_range_statistics
- bool
启用在响应标头中返回分区键范围统计信息。
- populate_quota_info
- bool
启用在响应标头中返回集合存储配额信息。
- session_token
- str
用于会话一致性的令牌。
返回
表示检索到的容器的 Dict。
返回类型
例外
如果无法检索容器,则引发。 这包括容器不存在时。
read_all_items
列出容器中的所有项。
read_all_items(**kwargs: Any) -> AsyncItemPaged[Dict[str, Any]]
参数
- max_item_count
- int
枚举操作中要返回的最大项数。
- session_token
- str
用于会话一致性的令牌。
使用响应元数据调用的可调用项。
- max_integrated_cache_staleness_in_ms
- int
集成缓存的最大缓存过期性(以毫秒为单位)。 对于配置为使用集成缓存(使用会话或最终一致性)的帐户,响应保证不会超过此值。
返回
(听写) 项的 AsyncItemPaged。
返回类型
例外
具有给定 ID 的项已存在。
read_item
获取由项标识 的项。
async read_item(item: str | Dict[str, Any], partition_key: str | int | float | bool, **kwargs: Any) -> Dict[str, Any]
参数
- post_trigger_include
- str
要用作后操作触发器的触发器 ID。
- session_token
- str
用于会话一致性的令牌。
- max_integrated_cache_staleness_in_ms
- int
集成缓存的最大缓存过期性(以毫秒为单位)。 对于配置为使用集成缓存(使用会话或最终一致性)的帐户,响应保证不会超过此值。
返回
表示要检索的项的 Dict。
返回类型
例外
无法检索给定项。
示例
从数据库获取项并更新其属性之一:
item = await container.read_item("item2", partition_key="Widget")
item["productModel"] = "DISCONTINUED"
updated_item = await container.upsert_item(item)
replace_item
如果指定的项存在于容器中,则替换指定项。
如果容器中尚不存在该项,则会引发异常。
async replace_item(item: str | Dict[str, Any], body: Dict[str, Any], **kwargs: Any) -> Dict[str, Any]
参数
- pre_trigger_include
- str
要用作预操作触发器的触发器 ID。
- post_trigger_include
- str
要用作后操作触发器的触发器 ID。
- session_token
- str
用于会话一致性的令牌。
- etag
- str
ETag 值或通配符 (*)。 用于检查资源是否已更改,并根据 match_condition 参数指定的条件进行操作。
- match_condition
- MatchConditions
在 etag 上使用的匹配条件。
返回
表示替换后的项的听写。
返回类型
例外
替换失败或具有给定 ID 的项不存在。
replace_throughput
替换容器的吞吐量。
如果容器不存在任何 ThroughputProperties,则会引发异常。
async replace_throughput(throughput: int | ThroughputProperties, **kwargs: Any) -> ThroughputProperties
参数
返回
容器的 ThroughputProperties,更新了新的吞吐量。
返回类型
例外
容器不存在吞吐量属性,或者无法更新吞吐量属性。
upsert_item
插入或更新指定的项。
如果容器中已存在该项,则会替换该项。 如果该项尚不存在,则插入该项。
async upsert_item(body: Dict[str, Any], **kwargs: Any) -> Dict[str, Any]
参数
- pre_trigger_include
- str
要用作预操作触发器的触发器 ID。
- post_trigger_include
- str
要用作后操作触发器的触发器 ID。
- session_token
- str
用于会话一致性的令牌。
- etag
- str
ETag 值或通配符 (*)。 用于检查资源是否已更改,并根据 match_condition 参数指定的条件进行操作。
- match_condition
- MatchConditions
在 etag 上使用的匹配条件。
返回
表示已插入的项的 dict。
返回类型
例外
无法重新插入给定项。