问题标签 [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.

0 投票
1 回答
6248 浏览

google-app-engine - 如何使用 ID 删除 NDB 实体?

基于此文档https://developers.google.com/appengine/docs/python/ndb/entities#deleting_entities 好,我仍然不确定为什么我不能在 NDB 上进行删除:

是的,我知道如何使用 id 进行选择

但它仍然无法正常工作......

这个也不起作用:

有事吗?

0 投票
1 回答
626 浏览

google-app-engine - Appengine - 从 db.Model 转换为 ndb.Model?

我有一堆定义为 db.Model 的数据,我想将其转换为 ndb.Model。

我尝试从 db 更改为 ndb,如下所示:

问题是我可以使用 temp 的 ndb 定义查询旧值(db-values)。但是当我已经拥有具有相同型号名称的数据库值时,我似乎无法存储 ndb 值。

0 投票
2 回答
1460 浏览

google-app-engine - 使用模型继承时,ndb.KeyProperty 可以引用基模型类吗?

我有一些模型共享一组公共属性,我在其他模型继承的基本模型类中定义了这些属性:

在其他一些模型中,我需要对任何BaseUser衍生模型的引用:

但是,当我尝试DerivedUserA为该属性设置实体键时MainModel.user,GAE 会提出一个BadValueError声明,指出它需要一个带有 kind 的键,BaseUser但被赋予了DerivedUserA.

如果我kind从 my 中删除参数MainModel,它会起作用:

我可以忍受,但我宁愿检查一下,以确保我没有试图在MainModel.user财产中保存任何类型的实体。有没有办法做到这一点?

0 投票
1 回答
238 浏览

google-app-engine - ndb 的缓存如何处理压缩属性?

我正在考虑在一些大属性上启用压缩(设置)。compressed = TrueLocalStructuredProperty

但是,这些是经常被读写的实体,所以我担心编码/解码这些属性所需的额外 CPU。

我想知道 ndb 的内置缓存系统是否会缓解这种情况?ndb 是否缓存这些属性的压缩或未压缩数据?我意识到每次写入都会发生压缩,但如果我至少可以在读取缓存实体时绕过解压缩,那可能是值得的。

0 投票
1 回答
665 浏览

app-engine-ndb - 谷歌应用引擎上传/下载数据到 NDB

我有初始 ndb 来存储数据:

我想从 CSV 文件导入数据。请教我导入数据的方法!以及csv文件的结构。

0 投票
2 回答
654 浏览

google-app-engine - Google App Engine NDB 重复属性附加信息

例如:我有一个带有重复“标题”属性的文章模型,该属性存储原始标题的不同语言的翻译:

除了标题属性之外,我如何存储标题的语言代码,以便我可以获得标题的特定版本,如下所示:

具有相同的属性名称很重要,因为我不知道文章标题将以何种语言查询。

0 投票
1 回答
853 浏览

python - 部分更新 App Engine 实体

我正在使用 App Engine 构建一个同步引擎,当我从客户端接收数据时,我想存储一个对象,但我不在乎它是否已经存在。如果我在更新时总是从客户端发送所有属性,那么今天效果很好。但我想要...

  • 客户端不知道的一些内部属性在更新后仍然存在
  • 客户端只能发送更改的值
  • 避免在更新之前获取所有对象,因为可能需要更新的对象很少

我是否需要获取每个对象,然后只更新我想要更改的值,然后更新对象?或者是否可以部分更新实体而不获取它们?

0 投票
3 回答
1192 浏览

python - NDB 在长时间请求期间未清除内存

我目前正在将长时间运行的作业卸载到 TaskQueue 以计算数据存储区中 NDB 实体之间的连接。

基本上,这个队列处理几个实体键列表,这些实体键将通过节点中querynode_in_connected_nodes函数与另一个相关联:GetConnectedNodes

这里 aNode有一个重复的属性connections,其中包含一个具有其他键 ID 的数组,以及一个与给定连接Node匹配的数组。sources

产生的结果存储在 blobstore 中。

现在我遇到的问题是,在连接函数的迭代之后,内存没有以某种方式被清除。以下日志显示了 AppEngine 在创建新GetConnectedNodes实例之前使用的内存:

除了一些波动之外,即使没有访问以前的值,内存也会不断增加。我发现很难调试这个或弄清楚我是否在某个地方有内存泄漏,但我似乎已经将它追溯到那个类。将不胜感激任何帮助。

0 投票
1 回答
358 浏览

python - 异步查询第一次抛出 AssertionError (AppEngine, NDB)

当我在查询上使用 fetch_async() 时,它在第一次运行时会因 AssertionError 而崩溃。如果我立即再次运行它,那很好。

例如。

带型号:

以下立即起作用,返回一个空列表:

但这会崩溃:

和:

但是,如果我立即再次运行它,例如通过执行以下操作:

有用。

这种情况到处都在出现,我正在努力找出根本原因。

0 投票
1 回答
175 浏览

google-app-engine - GAE-NDB:如何防止投影改变结果

我使用了ndb 投影,但它确实改变了结果,结果如何不受投影的影响?

结果是 5、10

如何使结果为 10、10 ?

谢谢