Проекционный запрос с использованием предка выдает ошибку 400 - PullRequest
0 голосов
/ 08 октября 2019

Следующие данные добавляются в хранилище данных следующим образом:

    key = ds.key(
            'User', 'alice',
            'id'
        )

    entity = datastore.Entity(
        key=key,
    )

    entity.update({"data": "big amount of information"})
    entity.update({"property_name": "confidential"})
    ds.put(entity)

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

    key = ds.key(
        'User', 'alice'
    )
    query = ds.query(ancestor=key)
    query.projection = ["property_name"]

    entities = list()

    for entity in query.fetch():
        entities.append(entity)

    return entities

но я получаю эту ошибку:

google.api_core.exceptions.InvalidArgument: 400 Unable to plan or invalidate query.

1 Ответ

2 голосов
/ 08 октября 2019

Запросы предков требуют составного индекса, даже если вы проецируете одно свойство. Убедитесь, что вы это сделали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...