我正在查询我的ravendb实例。我的目标集合包含超过3万个文档。我将pyravendb与python3结合使用。你知道吗
我使用以下代码查询索引:
result_ = self.store.database_commands.query(index_name="Raven/DocumentsByEntityName",
index_query=IndexQuery("Tag:MyCollection",total_size=128,skipped_results=start))
if len(result_['Results']) < 128:
return
开始成为每次查询时递增128的偏移量变量。 当我运行这个代码时,结果的长度总是128,这导致了一个无限循环。你知道吗
你知道为什么会这样吗?你知道吗
我知道这并不能完全回答你的问题,但是你考虑过使用RavenDB的流媒体功能吗?https://ravendb.net/docs/article-page/3.5/csharp/client-api/session/querying/how-to-stream-query-results
在许多情况下,处理大量文档时,这可能比使用Query()进行迭代更快、更简单。你知道吗
但是,请注意,不会跟踪流化对象。意味着对这些对象的更改以及随后的SaveChanges()-调用不会对RavenDB中存储的文档产生任何影响。你知道吗
问题是我使用的参数。正确的参数应该是start=offset,您希望跳过它,而不是skipped\u results=offset。你知道吗
正确的代码如下:
看看我的作品 Get all of a collection's documents id's RavenDB for a "per-document" modification
在pyravendbv3.5.3.5中,我更新了IndexQuery,现在您可以跳过或获取比128更少或更多的文档。你知道吗
另一件事不使用总大小或跳过的结果(它们将被删除)
相关问题 更多 >
编程相关推荐