python - CosmosDB Python获取多个项目

标签 python azure azure-cosmosdb azure-cosmosdb-sqlapi

我正在使用 CosmosDB noSQL API,但我觉得我做得不对。 container class中的方法全部返回这些 iterator objects ,它只有一个方法:next()。

我需要从容器中获取记录列表,我唯一的想法就是这样做:

def to_list(iterator):
    list = []
    for i in range(0, 99):
        try:
            list.append(iterator.next())
        except:
            break
    return list

这可行,但感觉很糟糕。这会成为性能问题吗? Iterator 类实际上包含我的所有数据吗?就像如果我使用返回的迭代器执行上述操作,我是对 cosmos 进行 1 次查询还是 100 次查询?

我找到了this文章使用了 azure.cosmos.cosmos_client 中的方法,但最终仍然会循环遍历所有内容。这是正常的吗,我应该使用 sqlalchemy 还是其他东西来代替?

使用 python 与 CosmosDB 对话的最佳实践是什么?

最佳答案

如果您尝试读取容器中的所有项目,可以使用此方法。

item_list = list(container.read_all_items(max_item_count=10))

这是一个查询。

items = list(container.query_items(
        query="SELECT * FROM r WHERE r.name=@name",
        parameters=[
            { "name":"@name", "value": "Mark" }
        ],
        enable_cross_partition_query=True
    ))

关于python - CosmosDB Python获取多个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74696523/

相关文章:

Azure应用服务: Deployment Source missing options [radio vs dropdown]

asp.net - 使用 Azure Active Directory 进行单点登录

Azure - 从 EA 门户获取订阅列表及其状态

mongodb - 无法从 Spring Boot 应用程序连接到 Cosmos Db Mongo Api

python - 在 python 中打开 DBF 文件时出现问题

python - 更改 NN 中的单个权重

python - 为什么 Python 对象可以有一个用整数表示的属性?

python - MySQL 选择具有几乎相同值的多行

azure - CosmosDB 中的分区键与文档 ID

azure - 处理 DocumentDB 中每秒请求单位 (RU/s) 的峰值