app-engine-ndb相关内容
通过谷歌应用引擎,我使用 ndb 来管理我的数据.我有一个使用重复字符串属性来保存字符串值列表的实体.如何使用等于属性值的列表对象进行查询? 我的意思是,实体是 类问题(ndb.Model):问题 = ndb.StringProperty(required=True)选择 = ndb.StringProperty(重复=真) 我想这样查询: question = "问题"选择 = [“
..
考虑博客数据建模的经典示例,其中我们有一个具有许多属性的 Blog 实体,我们希望列出页面中的最新博客. 将 BlogPost 实体非规范化为一个 BlogPostSummary 实体是有意义的,该实体将显示在列表视图中,避免获取和反序列化许多不需要的属性. class BlogPost(db.Model):标题 = db.StringProperty()内容 = db.TextPrope
..
我正在尝试对有效日期范围进行查询 q = Licence.query(Licence.valid_from 我知道 Datastore 不支持对两个属性的不等式查询.所以我这样做: kl = Licence.query(Licence.valid_from 但我不喜欢,因为我认为从数据存储中检索更多我最终需要的实体(或键)时使用了太多 RAM. 任何机构都知道进行此类查询的更好方
..
我有一个 HUser 模型(派生自 Google 的 User 类),它又包含 0 到 n 个社交帐户实例.这些帐户可以是对 Facebook、Twitter 或 LinkedIn 帐户的引用.我已经建立了一个 Account 模型,并在我的 User 模型中定义了一个 StructuredProperty 和 repeated=True,就像这样: class Account(ndb.Expa
..
我正在做一些事情来清除我的约 10,000 个实体的数据库,我的计划是将它放入一个任务中,使用 ndb.delete_multi() 一次删除 200 个,然后递归再次调用自身,直到没有实体为止. 目前,我还没有递归,所以我可以手动运行几次代码并检查错误、配额使用等.代码是: entities = MyModel.query_all(ndb.Key('MyModel', '*default
..
我的网站是电影目录.用户登录后,我会向他/她展示添加到我的数据库中的最新电影: movies = Movies.query()电影 = 电影.order(-Movies. added)电影 = 电影.get(keys_only = True)//get_latest_movie_id 它是否被缓存(电影每周添加到数据库中,所以它应该被缓存)?如何验证(即什么是内存缓存键)?昨天大约有 1000
..
我想更新具有很多属性的实体的属性. 如果我理解正确,每当我通过 从数据存储中检索实体时 entity = key_of_entity.get() 稍后更新它的属性 entity.some_property += 1实体.put() 我需要为读取该实体的每个属性付费?由于该实体具有相当多的属性,因此一遍又一遍地读取可能会非常昂贵.有没有办法更新实体的属性而不必先读取它? 解决方
..
我有模型 class Foo(ndb.Model):x = ndb.IntegerProperty()班级酒吧(ndb.Model):foo = ndb.StructuredProperty(Foo,重复=真) 我最近一直在尝试保存 Bar 实体时,仅在生产中出现此错误: BadValueError: 预期的 Foo 实例,得到 Foo(x=100) 我记得不久前看到过这个错误,然后它就消
..
我是 ndb 和 gae 的新手,在想出一个很好的解决方案设置索引时遇到了问题.假设我们有一个这样的用户模型: 类用户(ndb.Model):名称 = ndb.StringProperty()电子邮件 = ndb.StringProperty(required = True)fb_id = ndb.StringProperty() 登录后,如果我要通过查询检查电子邮件地址,我相信这会非常缓慢
..
在我的模型中,我有一个设置为 indexed=False 的属性.要在投影中使用它,我必须将其更改为 indexed=True.但令人惊讶的是,现在进行查询不会给出单一结果,总是空的.有什么提示可以重新索引表或为什么结果集为空? https://developers.google.com/appengine/docs/python/ndb/properties#options 解决方案
..
我尝试使用 GeoProperty 查询数据存储中的实体,但奇怪的是它会比较 GeoProperty 的第一个参数 lat.如果比较lat,则直接返回结果.唯一的例外是纬度相等,然后比较经度.例如,GeoPt(11, 10) 解决方案 您需要查看 NDB 的一些替代方案来进行空间查询.关于空间数据库的维基百科文章有一个地理数据库,您必须在 AppEngine 之外实施并调用. 或者,您可
..
我想在airbnb(https://www.airbnb.com/s/Paris--France?source=ds&page=1&s_tag=PNoY_mlz&allow_override%5B%5D=) 我将这样的数据保存在数据存储区 user.lat = float(lat)user.lon = float(lon)user.geoLocation = ndb.GeoPt(floa
..
我希望能够在测试中断言我的代码为被修改的实体调用了 Model.put().不幸的是,似乎有一些缓存正在进行,这样这段代码: from google.appengine.ext import ndb类 MyModel(ndb.Model):name = StringProperty(indexed=True)文本 = StringProperty()def update_entity(id,
..
类条目(ndb.Model):描述 = ndb.StringProperty()seqid = ndb.IntegerProperty()链接 = ndb.StringProperty()组 = ndb.StringProperty()时间戳 = ndb.StringProperty()推荐 = ndb.StringProperty(repeated=True) 图片中的两个条目是由两个不同的
..
我必须向现有的 NDB 类添加一个新属性: class AppList(ndb.Model):...ignore = ndb.BooleanProperty(default=False) # 新属性 然后我会像下面这样使用它: entries = AppList.query()条目 = 条目.过滤器(AppList.counter > 5)条目 = 条目.过滤器(AppList.ignore
..
我目前有一个网页,其中显示了来自数据存储区的记录列表以及一个编辑链接.我想从 db 转换它.到 ndb.我是 Python 和 GAE 新手. 当前代码= {% for listtype in listtypes %}{{ listtype.ListTypeName }}
..
我正在使用 Google-Appengine-NDB.我试图从数据库中获取不同的值,但它不起作用. 现在我的代码是:query_set = cls.query().order(cls.ls) # 获取有序查询.set_of_field = set([data.field for data in query_set]) # 并使用此循环进行不同.` 但是循环花费的时间太长(超过 12 秒).
..
在 App Engine NDB 中,我正在查询具有重复属性的实体.我想按表示该属性的数组的长度对结果进行排序. 我希望我能做什么: Entity.query(...).order(len(Entity.repeatedProp)) 解决方案 您需要将 ndb.IntegerProperty() 添加到您的实体,您将在其中存储重复属性的长度.每次更改重复属性时,都需要更新存储的长度.然
..
我发现了一个奇怪的问题,即运行查询、确认记录存在、返回计数为零. 这是我的模型: 类描述(ndb.Model):描述 = ndb.TextProperty()time_posted = ndb.DateTimeProperty(auto_now_add=True)uuid = ndb.StringProperty()类检查(ndb.Model):更新 = ndb.DateTimePrope
..
我经常被要求将存储在 NDB 模型中的数据导出到 csv.为此,我通常会写这样的模型: from google.appengine.ext import ndb类 Foo(ndb.Model):蒙蒂 = ndb.StringProperty()python = ndb.StringProperty()@财产@类方法定义字段名(cls):返回 ['monty', 'python'] 并且在导出
..