如何为 Python 中的 document_client 对象发送的 Cosmos DB 查询设置连续令牌?

2023-11-29

我有一个 API,可以根据文档字段中出现的关键字检索文档。我想对结果进行分页,以便我可以将文档返回给发送请求的客户,并允许他们在需要时请求更多文档。当我在 Azure 数据资源管理器中时,查询本身在浏览器中只需要一秒钟左右的时间,但当我使用 Python DocumentDB 库进行查询时,则需要大约一分钟的时间。

看着Microsoft Cosmos DB REST API,看起来好像有两个令牌,x-ms_延续 and x-ms-最大项目数所使用的。

似乎没有将这些作为条目放入options字典的document_client.QueryDocuments()就可以了。

在 GitHub 存储库中,Read()方法参考了options范围:

    headers = base.GetHeaders(self,
                              initial_headers,
                              'get',
                              path,
                              id,
                              type,
                              options)
    # Read will use ReadEndpoint since it uses GET operation
    url_connection = self._global_endpoint_manager.ReadEndpoint
    result, self.last_response_headers = self.__Get(url_connection,
                                                    path,
                                                    headers)

寻找base.py,文件所在的位置,我看到了这两块代码

if options.get('continuation'):
    headers[http_constants.HttpHeaders.Continuation] = (
        options['continuation'])

if options.get('maxItemCount'):
    headers[http_constants.HttpHeaders.PageSize] = options['maxItemCount']

这似乎对应于上面的两个参数。但是,当我将它们设置为查询中的选项时({'continuation':True,'maxItemCount':10}), 没有什么变化。

最终查询看起来像

client.QueryDocuments(collection_link, query, {'continuation':True,'maxItemCount':10})

我也尝试过使用字符串而不是 intmaxItemCount.

我在这里做错了什么?

编辑:标题与上面文档中的两个相同,来自http_constants.py:

# Our custom DocDB headers
Continuation = 'x-ms-continuation'
PageSize = 'x-ms-max-item-count'

延续令牌的工作方式是,当您查询文档并且有更多可用文档与该查询匹配时,服务会返回一个标记(或令牌),您需要将其包含在下一个查询中。这将告诉服务从该标记而不是开头获取文档。

因此,在您的代码中,第一个查询将没有继续参数(或 null)。当您获得结果时,您应该查看服务是否返回了令牌。如果没有返回令牌,则意味着没有更多可用数据。但是,如果返回令牌,您应该将其包含在第二个查询的查询选项中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何为 Python 中的 document_client 对象发送的 Cosmos DB 查询设置连续令牌? 的相关文章

随机推荐

  • 添加与 Ruby Gem Mailboxer 的所属关系

    我正在构建一个电子商务应用程序 并希望实现诸如消息传递系统之类的东西 在应用程序中 所有对话都将与Product模型或Order模型 在这种情况下 我想将相关对象 类型 id 我想 存储到Conversation object 要添加字段
  • 是否可以声明一个包含另一个常量数组的常量数组?

    我想做这样的事情 const MyFirstConstArray array 0 1 of string Hi Foo MySecondConstArrayWhichIncludesTheFirstOne array 0 2 of stri
  • 在 core_cm4.h 上为什么有类似 ((uint32_t)(int32_t)IRQn) 的转换?

    在 core cm4 h 的以下代码中 为什么存在双重转换 uint32 t int32 t IRQn 例如在以下函数中 STATIC INLINE void NVIC EnableIRQ IRQn Type IRQn NVIC gt IS
  • 如何根据 swing 中的 JPanel(table) 行数增加 JFrame 大小

    我有 Swing 应用程序 它执行以下操作 public void init jFrame new JFrame jFrame add sortingDataInputComponent asComponent jFrame setDefa
  • 如何在 ttk.OptionMenu 周围制作边框

    在尝试制作入口框架时 我遇到了一个问题 我无法在 ttk OptionMenu 周围制作边框以使其看起来与 ttk Entry 相似 图中是相邻的两个 制作选项菜单 option ttk OptionMenu bottom containe
  • DatabaseMetaData.getColumns 返回同义词的空结果集

    方法getColumns 元数据上的同义词返回空结果集 对于表和视图 它正确返回列列表 这种情况发生在 Oracle 11g Express 并使用最新的 Oracle JDBC 驱动程序 11 2 3 上 其他 SQL 服务器也会发生这种
  • 我们如何在 SwiftUI 中访问 List 的 DisclosureGroup?

    我使用此代码在 SwiftUI 2 0 和 macOs 10 15 7 的列表中显示我的父母和孩子数据 默认情况下 我的父母处于折叠状态 我喜欢强制其中一些通过我的按钮操作进行扩展 我有那个按钮 有谁知道如何解决这个问题 这是我的代码 im
  • 设置 DAY_OF_WEEK 返回意外结果

    我想将给定日历实例的时间戳设置为一周的开始 星期一 相反 它返回一个看似完全不相关的时间戳 除非我在这样做之前访问日历的任何字段 我在下面提供了一个示例 另请参阅此可运行示例Ideone 这是预期的行为吗 这背后的逻辑是什么 是的 我听说过
  • !important 已覆盖

    我正在使用 JQuery mobile 我希望我的应用程序上的所有文本都是紫色的 我这样做了 color 7A68AE important in my body我的 CSS 部分 然后我尝试在 firebug 中调试它并注意到我的 impo
  • PHP DomDocument 更改条件注释

    我有这个带有条件注释的 html 文件
  • 在搜索结果中显示整行

    在 Visual Studio Code vscode 中 当我搜索某些内容时 每个搜索结果中的行开头可能会被切断 怎样才能看到被剪掉的部分呢 例如 假设我搜索 directory 搜索结果可能会显示以下内容 require directo
  • 如何期待 Robotium 中的异常?

    这是我的测试用例 public void testStartActivityWithoutExtraData try getActivity Assert fail Should have thrown IllegalStateExcept
  • perl删除连续的重复行

    我想删除连续的重复行 即例如 test txt car speed is good bike slower than car plane super fast super fast bullet train super fast 这将删除除
  • Firebase 数据库结构

    我目前正在为 iOS 创建一个电子商务应用程序 但我无法决定如何为用户通过 关键字 搜索项目的场景构建数据库 我不确定存储关键字数组或仅存储该项目的关键字字符串是否会更好 如果大家有什么建议请告诉我 谢谢 这是我现在的单个项目的结构 ite
  • Ajax.BeginForm 导致重定向到部分视图而不是就地视图

    我的 Search cshtml 有一个名为 search results 的 div 需要更新 SearchResults 是操作名称 我已经在 MVC2 VS2008 项目上做过很多次了 但这是我第一次使用 MVC3 和 VS2010
  • AI Platform 中的 PyTorch 模型部署

    我正在 Google Cloud AI Platform 中部署 Pytorch 模型 出现以下错误 ERROR gcloud beta ai platform versions create Create Version failed B
  • 将对象绑定到 WPF TreeView

    我想知道如何将自定义数据类型绑定到TreeView 数据类型基本上是包含其他数组列表的对象数组列表 访问看起来像这样 foreach DeviceGroup dg in system deviceGroups foreach DeviceT
  • 为什么这段多行代码中存在VBA语法错误?

    我有一行这么长的代码 VBE 说它有语法错误 我检查了代码 我很确定它应该没问题 我是否超出了限制 Worksheets DTR Cells Total Rows Formulas 1 26 IF INDEX Payroll Tables
  • Oracle 数据库 11g 中出现错误 ORA-12638

    我是一个使用 Oracle Database 11g Express 的大初学者 今天第一次尝试 我只掌握了数据库的理论知识 学过SQL但从未使用过 所以 我今天安装了Oracle 11g 在需要时给了他们系统密码 然后我继续启动 启动数据
  • 如何为 Python 中的 document_client 对象发送的 Cosmos DB 查询设置连续令牌?

    我有一个 API 可以根据文档字段中出现的关键字检索文档 我想对结果进行分页 以便我可以将文档返回给发送请求的客户 并允许他们在需要时请求更多文档 当我在 Azure 数据资源管理器中时 查询本身在浏览器中只需要一秒钟左右的时间 但当我使用