问题标签 [app-engine-ndb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 访问 Appengine NDB 中已删除的实体
我在 Appengine 项目中使用 NDB。在删除某些实体后,我正在使用 _post_delete_hook 进行一些操作。在这种方法中,我有钥匙。但是当我做 key.get() 我得到一个错误。这是一些示例代码。
一些帮助?
这是关于钩子的文档。 http://code.google.com/appengine/docs/python/ndb/entities.html#hooks
python - 这个递归能写得更高效吗?
我有一个分层组织,它是一棵树,如果父母赞助孩子,节点就是孩子。看来我可以用这段代码遍历树
使用上面我可以得到一个用户的组织只是
downline=user.get_team(user, [])
但是有没有更有效的方法,因为我必须为单个请求多次执行此操作,并且很多递归可能效率低下?或者代码会很好,因为它可以正确地遍历树?在我的第一个版本中,我使用了三个变量,我发现我可以将代码重新排列为只有两个变量,而不是这样:
我发现 teamlist 变量并不是真正需要的,所以我删除了它。我这样做的方式是首先使用一个变量太多:
people = user.downline(user, [], [])
google-app-engine - 在 db.Model 和 NDB 之间创建 ManyToMany 引用
变化的问题。我想应用和之间的ManyToMany
关系。例子db.Model
NDB
NDB
模型
db
模型
我可以应用ManyToMany
这些模型之间的关系吗?
编辑:
这是我的User
模型
这是我的Test
db
模型
现在我想在测试中应用 manyToMany。是否可以?
Django 风格的多对多
google-app-engine - 并行代码执行 python2.7 ndb
在我的应用程序中,对于一个处理程序,我需要获取一堆实体并为每个实体执行一个函数。
我有我需要的所有实体的钥匙。获取它们后,我需要为它们中的每一个执行 1 或 2 个实例方法,这会大大降低我的应用程序的速度。对 100 个实体执行此操作大约需要 10 秒,这很慢。
我试图找到一种方法来获取实体并并行执行这些功能以节省时间,但我不确定哪种方法最好。
我尝试了 _post_get_hook 但我有一个未来的对象,需要调用 get_result() 并执行钩子中的函数,该函数在 sdk 中工作正常,但得到很多“调用 Python 对象时超出最大递归深度”但是我真的不明白为什么,错误信息也不是很详细。
Pipeline api 或 ndb.Tasklets 我在寻找什么?
atm 我正在反复试验,但如果有人能引导我走向正确的方向,我会很高兴。
编辑
我的代码类似于文件系统,每个文件夹都包含其他文件夹和文件。集合的路径设置在另一个实体上,因此要序列化集合实体,我需要获取引用的实体并获取路径。在 Collection 上, serialized_assets() 函数包含的实体越多,它的速度就越慢。如果我可以并排为每个包含的资产执行序列化函数,它会加快速度。
编辑2:
这个tasklet代码可以吗?
google-app-engine - 使用 Google App Engine NDB 和 Fixture(s)
是否有关于如何将 Python夹具模块与 Google App Engines New DB一起使用的好信息?
似乎有一些问题,例如:
obj.delete()
拆解时(在ndb
它的obj.key.delete()
)如何设置嵌套的StructuredProperty元素并不直观。
是否有允许夹具模块使用的解决方法ndb
,或者可以使用的替代夹具系统ndb
?
谢谢你。
google-app-engine - modelname_set 的 Google App Engine ndb 等效项(反向引用属性)
是否有modelname_set
(反向引用的属性)的等价物Google App Engine 的 NDB的等价物?
在旧数据库中,模型实体将反向引用属性描述为:
后向引用属性的名称默认为 modelname_set(模型类的名称为小写字母,并在末尾添加“_set”),并且可以使用 ReferenceProperty 构造函数的 collection_name 参数进行调整。
我注意到 NDB 似乎不存在此属性db.Model
我注意到 NDB实例
NDB 是否具有等效于反向引用的属性?
google-app-engine - 如何模拟 ndb.get_context().urlfetch?
在我的测试中,我想模拟urlfetch
由 NDB 包提供的,因此在测试执行期间不会发出真正的 http 请求。
urlfetch()
return Future
,所以看来我需要知道 NDB 内部才能正确模拟它......而且我认为我可以google.appengine.api.urlfetch.create_rpc()
以某种方式模拟......但到目前为止我没有取得任何进展......
我怎样才能做到这一点?
谢谢你。
google-app-engine - NDB 与 DB(在高复制数据存储上)的速度比较是多少?
当应用程序读取一个实体时,该实体会被自动缓存;这为经常读取的实体提供了快速(且廉价)的读取。
...
写入数据的 NDB 函数(例如 put())在缓存失效后返回;Apply 阶段是异步发生的。
在 Youtube 上观看,Google I/O 2011: More 9s Please: Under the Covers of the High Replication Datastore,在 13:11-ish,平均延迟为:
主从:
- 读取:15ms
- 写入:20ms
高复制:
- 读取:15ms
- 写入:45 毫秒
从应用程序的角度来看,NDB 对这些速度的影响有多大?
编辑:特别好奇时间统计(以毫秒为单位)。
额外的信用:我还听说尼克约翰逊提到每个查询大约需要160 毫秒(在 2009 年)[link]
NDB 是否为查询提供任何速度优势?
python - 谷歌应用引擎 NDB
随着最近发布的NDB,是否有任何理由继续使用旧的数据存储 API?
我正在开发一个当前使用旧数据存储 API 的应用程序,并且我在 memcache 中缓存对象方面付出了相当多的努力。我的理解是否正确,通过更改为 NDB,我可以删除我的自定义缓存,并且仍然保留我当前的性能?
此外,NDB 是否以任何方式改变了对分片计数器的需求?NDB 中每秒向实体(组)写入 5 次的限制是否以某种方式发生了变化?
编辑
鉴于我的应用程序仍在开发中,并且我没有无法轻松删除的实体,在更改为 NDB 之前是否应该考虑一些事情,或者是否像更改为一样db.Model
简单ndb.Model
?
python - Google-app-engine NDB iter keys_only
假设我有一个经常执行的查询,很可能产生相同的结果。
使用是否正确:
会表现得比:
因为在第一个示例中,查询将仅加载键,后续调用key.get()
将利用 NDB 的缓存机制,而示例 2 将始终从存储中获取实体?还是我误解了什么?