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