Как получить несколько объектов, используя gql в хранилище данных с помощью Or Condition - PullRequest
0 голосов
/ 06 июня 2018

Использовать OR или IN с хранилищем данных

Вот мой запрос, который я выполняю для извлечения сущностей

    SELECT  * From Transactions
    Where  
      __key__ = Key(Transactions,"00043b75-37f5-49c1-a104-4ebbe3f53a1atuzzin") OR
      __key__ = Key(Transactions,"c0f6a0ff-97b4-42a1-8a16-5473991834c8tuzzin")

Но OR не поддерживается и IN выдает ошибку

Каков идеальный способ получить результат?

Мета сущности

 - Namespace:  [default]
 - Kind:  Transactions
 - Key:  Transactions 
 - name: dummytranasction-id-string

1 Ответ

0 голосов
/ 08 июня 2018

Мы не можем использовать OR в GQL как для документов .Вы можете получить сущности, если знаете, например, ключи:

from google.cloud import datastore
import google.cloud.exceptions

def batch_lookup(client):

    keys = [
            client.key('Transactions', "00043b75-37f5-49c1-a104-4ebbe3f53a1atuzzin"),
            client.key('Transactions', "c0f6a0ff-97b4-42a1-8a16-5473991834c8tuzzin")
            ]

    result_set = []

    for i in range(len(keys)):
        key = keys[i]
        t = client.get(key)
        if t is not None:
            result_set.append(t)
            print(str(i + 1) + ": " + str(t))

    return result_set

datastore_client = datastore.Client()

batch_lookup(datastore_client)

В этом примере используется фрагмент, упомянутый здесь

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