python - 从 AppEngine 数据存储区删除之前获取部分祖先

标签 python google-app-engine model datastore

我想在事务中从 AppEngine 数据存储区删除一堆对象:

def F():
  items_to_delete = []
  for item in db.Query().ancestor(...):
    if item.aaa ... item.bbb:
      items_to_delete.append(item)
  db.delete(items_to_delete)
db.run_in_transaction(F)

是否可以仅获取项目的几个字段(aaabbb)?这样的获取会对性能产生积极影响吗?

最佳答案

不可能只获取几个字段;即,您将始终获取整个实体及其所有字段(或仅获取实体键)。来自 App Engine GQL reference docs :

The GQL syntax can be summarized as follows:   
    SELECT [* | __key__]
        [FROM <kind>]]
        [WHERE <condition> [AND <condition> ...]]
        [ORDER BY <property> [ASC | DESC] [, <property> [ASC | DESC] ...]]
        [LIMIT [<offset>,]<count>]
        [OFFSET <offset>]

A GQL query returns zero or more entities or Keys of the requested kind. Every GQL query always begins with either SELECT * or SELECT __key__. (A GQL query cannot perform a SQL-like "join" query.) Tip: SELECT __key__ queries are faster and cost less CPU than SELECT * queries.

关于python - 从 AppEngine 数据存储区删除之前获取部分祖先,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8257470/

相关文章:

ruby-on-rails - Ruby on Rails 从一种形式保存在两个表中

typescript - 是否有与 TypeScript 兼容的方式来使用 Sequelize 访问关联实体?

ruby-on-rails - 在表单中发生错误后,如何获取在Rails中输入的值以保留在表单中?

python - Python 中 Google 搜索出错 : 503 Service Unavailable

Python - Graphviz - 删除 DecisionTreeClassifier 节点上的图例

java - GAE 上的持久性异常

google-app-engine - 为 APNS 安装根证书

Python 请求无效 header 值

python - 如何从 Py_CompileString 打印出错误(包括语法)?

python - 在谷歌应用引擎上,为什么我的 'import' 语句在 Live 上失败,但在 Dev(localmachine) 上工作?