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