gpt4 book ai didi

python - NDB 模型使用数组过滤器查询键 ID

转载 作者:行者123 更新时间:2023-11-28 20:21:27 27 4
gpt4 key购买 nike

我正在尝试使用提供的键 ID 字符串列表查询 NDB 模型。该模型具有在创建时分配的字符串 ID - 例如:

objectKey = MyModel(
id="123456ABC",
name="An Object"
).put()

现在我不知道如何使用列表过滤器查询 NDB key ID。通常您可以执行 MyModel.property.IN() 来查询属性:

names = ['An Object', 'Something else', 'etc']

# This query works
query = MyModel.query(MyModel.name.IN(names))

当我尝试按键列表进行过滤时,无法正常工作:

# This simple get works
object = MyModel.get_by_id("123456ABC")

ids = ["123456ABC", "CBA654321", "etc"]

# These queries DON'T work
query = MyModel.query(MyModel.id.IN(ids))
query = MyModel.query(MyModel.key.id.IN(ids))
query = MyModel.query(MyModel.key.id().IN(ids))
query = MyModel.query(MyModel._properties['id'].IN(ids))
query = MyModel.query(getattr(MyModel, 'id').IN(ids))
...

我总是收到 AttributeError: type object 'MyModel' has no attribute 'id' 错误。

我需要能够按 ID 列表进行过滤,而不是遍历列表(有时很长)中的每个 ID。我该怎么做?

最佳答案

以下应该有效:

keys = [ndb.Key(MyModel, anid) for anid in ids]
objs = ndb.get_multi(keys)

关于python - NDB 模型使用数组过滤器查询键 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27714761/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com