如何使用 Or 条件在数据存储区中使用 gql 获取多个实体

How to get multiple entities using gql in datastore with Or Condition

对数据存储使用 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

我们不能在 GQL 中使用 OR 作为 per the docs。如果您知道密钥,则可以获得实体,例如:

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)

此示例使用提到的代码段 here