pen*_*ent 2 python-2.7 app-engine-ndb google-cloud-datastore
我正在尝试执行一个我直觉上写为的查询:
Project.query(Project.project_id IN ("abc","def")).fetch()
Run Code Online (Sandbox Code Playgroud)
我了解到在 NDB 中,您可以这样做:
Project.query(ndb.OR(Project.project_id == "abc", Project.project_id == "def")).fetch()
Run Code Online (Sandbox Code Playgroud)
我一般都可以接受,即使它有点难以阅读。尽管(对于像我这样的新手)我不明白为什么解释器不能为您完成艰苦的工作并将 IN 接受/解析为 OR == 的嵌套......但这是一个单独的问题。
问题是我可接受的 project_id 值列表 - 在本例中为“abc”、“def” - 是动态的。使用 IN,我可以将头围绕在 IN 列表之类的东西上。有了这些多个 OR,我想我可以遍历我的列表并写出链式语句 - 但这将是一个字符串,所以我怀疑 ndb 不会将其解析为有效查询,而且感觉非常不雅。
这里的规范方法是什么?
query = Article.query(Article.tags.IN(['python', 'ruby', 'php']))
这表明你应该能够做到:
dynamic_list = ['abc','def','ghi']
Project.query(Project.project_id.IN(dynamic_list))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
728 次 |
最近记录: |