当前位置: 首页 > 面试题库 >

如何在Google App Engine中获得我的模型之一的独特价值

南门正业
2023-03-14
问题内容

我在下面有一个模型,我想获得所有不同的area值。SQL等效为select distinct area from tutorials

class Tutorials(db.Model):  
    path = db.StringProperty()
    area = db.StringProperty()
    sub_area = db.StringProperty()
    title = db.StringProperty()
    content = db.BlobProperty()
    rating = db.RatingProperty()
    publishedDate = db.DateTimeProperty()
    published = db.BooleanProperty()

我知道在Python中我可以做到

    a = ['google.com', 'livejournal.com', 'livejournal.com', 'google.com', 'stackoverflow.com']
 b = set(a)
    b
    >>> set(['livejournal.com', 'google.com', 'stackoverflow.com'])

但这需要我将区域项目从查询中移出到另一个列表中,然后针对该列表运行集合(听起来效率很低),如果我在数据存储区中的位置1001有一个不同的项目,则由于提取限制为1000。

我想获取数据存储区中area的所有不同值,以将其作为链接转储到屏幕上。


问题答案:

数据存储区无法在单个查询中为您执行此操作。数据存储区请求始终从索引返回连续的结果块,并且索引始终由给定类型的所有实体组成,并根据指定的顺序进行排序。查询无法仅由于一个字段具有重复值就跳过项目。

一种选择是重组数据。例如,引入表示“区域”的新实体类型。添加教程时,如果不存在相应的“区域”,则创建相应的“区域”;如果删除教程,则如果没有与该“区域”相同的教程,则删除相应的“区域”。如果每个区域在该区域都存储了一定数量的Tutorials,则可能不会太繁琐(尽管实际上使事务与事务等保持一致)。我希望实体的键可以基于区域字符串本身,这意味着您始终可以进行键查找而不是查询来获取区域实体。

另一种选择是使用排队的任务或cron作业来定期创建所有区域的列表,如果需要,可以在多个请求上累积该列表,然后将结果放入数据存储区或内存缓存中。当然,这意味着区域列表有时可能会暂时过时(或者,如果不断变化,则可能永远不会完全过时),您可能会接受也可能无法接受。

最后,如果与教程相比可能只有很少的区域,则可以通过请求第一个教程(按区域排序),然后请求第一个教程的面积大于第一个教程的面积,来即时进行操作。以此类推。但这在每个不同的区域都需要一个请求,因此不太可能很快。



 类似资料:
  • callbackFacebook函数如何从uri获取代码的值? uri=http://localhost:8081/callback?code=AQDNm6hezKdTsId5k4oXKNo

  • 问题内容: 我正在从Angular的文档中查看此示例,但是我认为这可能总体上适用于Promise。下面的示例是从文档中逐字复制的,并附有评论: 我不清楚这是如何工作的。如果我可以调用第一个的结果并将它们链接起来(据我所知),那么它就是一个类型为Promise的对象。这不是一个。那么,“它的值将是promiseA的结果增加1”的含义是什么? 我应该以这种方式访问吗?成功回调如何返回承诺并返回“结果+

  • 问题内容: 我有一个 .jrxml 文件,我想将一些参数从代码传递给它。我有一个具有像场R舱,和。情况很简单,当我需要传递价格或数量时,我只是这样做: 我尝试通过时出现问题。我尝试了类似的东西: 和许多其他问题,但我不断出错: 您有解决该问题的想法吗? 问题答案: 例如,您有一对JavaBean(POJO): 并且您以这种方式声明报告的数据源:(是的,我喜欢 Guava ) 如果使用此字段声明:

  • 在OWL API中,我无法找到一种方法来检索定义有效值枚举的数据类型的等效类。当我手中有一个OWLDatatype时,我如何获得一组允许的值? [我尝试将RDF/XML作为代码块粘贴到这里,但不起作用。我甚至查看了markdown帮助。请告诉我如何做到这一点。] 本体使用以下构造: RDFS:数据类型 OWL:EquivalentClass RDFS:数据类型 猫头鹰:其中之一 RDF:描述 RD

  • 问题内容: 我正在使用php中的分页进行搜索功能,下面是我的代码,但是每当我单击下一个链接时,搜索查询都不会采用通过POST传递的变量。你能帮我么.. 问题答案: 您的代码中有几个问题。 第一的: 您使用的变量不正确。您有,但您应该使用与变量相同的方式,如下所示: 第二: 您正在解释“发布”的概念,并错误地单击了链接。您需要使用下一个和上一个按钮进行的​​操作是一个隐藏的表单,其中包含您需要的所有

  • 我建立了一个简单的神经网络, 我可以通过以下方式获得其重量: 但是,通过这种方式,我只得到了没有偏差的权重矩阵(5x20,1x20)。如何获取偏差值?