- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
A]问题摘要:
我的项目中有一对多数据模型。我需要帮助构建一个查询,以根据“一个”侧数据对象的键获取“多”侧数据对象。
请参阅“EDIT#1”以获取已运行但仍然低效的代码。
B] 问题详细信息:
1] 我有“UserReportedCountry”(一个)到“UserReportedCity”(多个)、“UserReportedCity”(一个)到“UserReportedStatus”(多个)数据模型关系。
2] UserReportedCountry 的键是country_name,例如“unitedstates”。UserReportedCity 的键是国家/地区名称:城市名称,例如“unitedstates:boston”。UserReportedStatus 没有特殊的键名。
3] 我的 python 代码中有用户国家和城市名称,我想根据城市键名称“county_name:city_name”检索所有“UserReportedStatus”对象
C] 代码摘录:
1]数据库模型:
class UserReportedCountry(db.Model):
country_name = db.StringProperty( required=True,
choices=['Afghanistan','Aring land Islands']
)
class UserReportedCity(db.Model):
country = db.ReferenceProperty(UserReportedCountry, collection_name='cities')
city_name = db.StringProperty(required=True)
class UserReportedStatus(db.Model):
city = db.ReferenceProperty(UserReportedCity, collection_name='statuses')
status = db.BooleanProperty(required=True)
date_time = db.DateTimeProperty(auto_now_add=True)
2] 到目前为止我尝试过的查询:
def get_data_for_users_country_and_city(self,users_country,users_city):
key_name_for_user_reported_city = users_country + ":" + users_city
return UserReportedStatus.all().filter('city.__key__=', key_name_for_user_reported_city ).fetch(limit=10)
D] 正在使用的技术
1]Python
2] Google 应用引擎
3] Django
4] Django 模型。
[编辑#1]
我尝试了以下机制来根据给定的城市和国家查询状态对象。这确实有效,但我相信这是执行任务的低效机制。
def get_data_for_users_country_and_city(self,users_country,users_city):
key_name_for_user_reported_city = users_country + ":" + users_city
city_object = UserReportedCity.get_by_key_name( key_name_for_user_reported_city )
return UserReportedStatus.gql('WHERE city=:1', city_object)
最佳答案
您的最后一个查询看起来是正确的,我没有发现任何效率低下的问题;事实上,查询 by_key_name
非常快速且高效。
我认为您的面向规范化 RDMBS 模型设计还有改进的空间;由于 GAE 不支持 JOINS,因此在调用 get_data_for_users_country_and_city
后,您最终会在以下情况下访问数据存储区过多而无法获取 city_name
和 country_name
属性:解除引用。
你能做什么? 反规范化和预取。
UserReportedCity
模型定义中添加 country_name
属性UserReportedStatus
对象的 UserReportedCity
对象关于python - 帮助构建一对多关系的 GQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5710368/
我正在尝试导入本地软件包,之前在其他项目中都已经这样做。我不确定如果我做错了什么,或者我在环境中摔坏了,我尝试去1.14 && 1.15。 go mod init github.com/malikia
我已经将此作为问题发布在 graphql-tag 存储库中,但我会在这里发布,因为我希望这里有人有可行的解决方案。 我想做什么? 我想根据传递到我的 React 组件的 props 动态定义本地类型的
我想用 Google 查询语言实现一系列四舍五入的查询,例如: select round(age,-1), count(id) group by round(age,-1) 或 int/floor/e
Google 应用引擎返回“BadRequestError:事务内只允许祖先查询。”这在代码上下文中意味着什么: class Counter(db.Model): totalRegis
对 GAE 的数据存储进行一些修改后,我发现我想不出一个合适的方法来过滤掉结果,即在多值属性上使用不等式过滤器“!=”: class Entry(db.Model): ... tags
我有一个长时间运行的后台进程,可以解析几十万行 CSV。我注意到该进程存在内存泄漏,偶尔会导致任务达到其软内存限制并终止。我已将代码部分缩小为以下代码块: class BaseModel(db.Mod
我是学习和使用 GQL 的新手。我在这里看到了 GQL 语法:https://developers.google.com/appengine/docs/python/datastore/gqlrefe
我创建了一个 NDB 模型 class Account(ndb.Model): accId = ndb.StringProperty() firstName = ndb.StringPro
我用 gql来自 graphql-tag . 假设我有一个 gql对象定义如下: const QUERY_ACCOUNT_INFO = gql` query AccountInfo { v
由于建议的库:gql,我很难在 Python 中使用 GraphQL完全没有记录。 我怎么发现要提供 api url,我需要像这样将 RequestsHTTPTransport 对象传递给客户端: c
我需要更改条目的值,但以下代码不起作用。 logList = db.GqlQuery("SELECT * FROM Log ORDER BY date DESC LIMIT 1") logList[0
我还没有找到关于如何使用 GQL 或任何替代方案查询多对多关系模型的良好简单教程。谁能给我一个使用 GQL 或任何替代方案的 Python 示例? 编辑: results = RestaurantRe
当我尝试为导入 from google.appengine.ext import ndb 的模块创建文档时,Sphinx 抛出此错误: Traceback (most recent call last
我正在生成一个合并许多用户评论的提要,因此您的提要可能是 user1+user2+user1000 的评论,而我的可能是 user1+user2。所以我有这样一句话: some_comments =
如何使用列表作为过滤器在 GQL 中进行选择。 如果我有课 public class Obj{ @Persistent private Long name; } 我怎样才能得到名称不在
我有一个名为 Account 的实体类型。其中一个字段是一个名为 selfie 的字符串,它基本上是用户上传的自拍的 url。我想获取有自拍的用户(因此,如果用户没有自拍,则不应将其包含在结果集中)。
我有一个包含一些条目的表。我想用一些默认值向该表添加一列。在 mysql 中,我们将其作为在 mysql 中: `ALTER TABLE Example ADD status VARCHAR(60)
我是 Python 的新手,目前正在开发我的第一个 Google App Engine 应用程序。在我的程序中,我有一个“收件箱”数据库模型,其中包含字符串属性,例如 to_user、from_use
我正在尝试在 GAE 上构建类似平台的论坛。 我必须首先提到:我对 GAE 有点陌生。 我想提取对特定帖子的所有回复。到目前为止,结构如下所示: - Forum --- Post ----- Repl
我想做的是构建一些迷你 cms,其中包含带有 uri 的页面。 我的 urls.py 中的最后一条路线指向我的 views.py 中的一个函数,它会在数据存储中检查是否有可用的页面与当前请求的 uri
我是一名优秀的程序员,十分优秀!