python - 如何在 Google App Engine 中使用 python 从我们要在 ndb 数据存储中搜索的元素列表中进行 AND & OR 运算查询

标签 python google-app-engine google-cloud-datastore app-engine-ndb

我有不同模型实体的键列表。 示例:-

list_1 = ['<entity key of model 1>', '<entity key of model 2>', '<entity key of model 3>']

我想查询从列表中动态形成AND操作的查询。

示例:-

query = <SOME MODEL>.query(ndb.AND(<SOME MODEL>.entity == list_1[0], <SOME MODEL>.entity == list_1[1], <SOME MODEL>.entity == list_1[2]))

任何帮助进行此类查询。

最佳答案

如果示例中的 Model.entity 不是重复属性,则此查询没有任何意义,但类似这样的操作将执行您想要的操作:

q = Model.query()
for item in list_1:
  q = q.filter(Model.entity == item)

如果你想把它写在一行中,那么像这样:

q = Model.query(ndb.AND(*(Model.entity == item for item in list_1)))

关于python - 如何在 Google App Engine 中使用 python 从我们要在 ndb 数据存储中搜索的元素列表中进行 AND & OR 运算查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33980981/

相关文章:

java - 在 Beam 中初始化外部服务连接

python - GAE ndb future.done() 从不返回 true

python - 获取每行的三个最小值并返回对应的列名

python - Django 导入错误 : cannot import name 'python_2_unicode_compatible'

python - 从用户处获取 2 个不同的日期输入

Python google appengine session 使用 webapp2_extras 混淆

google-app-engine - 使用单个查询获取整个实体组

python - Flask 和 MongoDB - For 循环不工作

google-app-engine - 用于 SPA 和客户端路由的 AppEngine dispatch.yaml

google-app-engine - 任务队列未运行我的所有任务 - App Engine 后端