Питон Google Datastore возвращает меньшее количество объектов на странице - PullRequest
0 голосов
/ 03 декабря 2018

Я использую Python клиент SDK для хранилища данных (google-cloud-datastore) версии 1.4.0.Я пытаюсь запустить выборку запроса только по ключу:

query = client.query(kind = 'SomeEntity')
query.keys_only()

Фильтр запросов имеет условие EQUAL для field1 и условие GREATER_THAN_OR_EQUAL для field2.Упорядочение выполняется на основе поля 2

Для выборки я указываю ограничение:

query_iter = query.fetch(start_cursor=cursor, limit=100)
page = next(query_iter.pages)

keyList = [entity.key for entity in page]
nextCursor = query_iter.next_page_token

Хотя существует около 50 объектов, удовлетворяющих этому запросу, каждая выборка возвращает около 10-15 результатов икурсор.Я могу использовать курсор, чтобы получить все результаты;но это приводит к дополнительным накладным расходам на вызовы

Ожидается ли такое поведение?

1 Ответ

0 голосов
/ 15 апреля 2019
Запрос

keys_only ограничен 1000 записями за один вызов.Эта операция считается за чтение одной сущности.

Для других ограничений хранилища данных см. Подробную таблицу в документации.

Однако в коде вы указали курсор в качестве начальной точки для последующего извлеченияоперация.Запрос может быть ограничен без курсора:

query = client.query() query.keys_only() tasks = list(query.fetch(limit=100))

Для получения подробных инструкций по использованию ограничений и курсоров см. Документацию хранилища данных Google Gloud


...