我正在阅读 Google App Engine 文档,发现这条线很难理解
App Engine 数据存储区可以从查询中返回整个实体或仅返回实体键。
这是什么意思?有filter(property_operator, value)
和fetch(limit, offset=0)
而且我相信values()
App Engine 上的 django-nonrel 支持。那么这是什么意思呢?
我正在阅读 Google App Engine 文档,发现这条线很难理解
App Engine 数据存储区可以从查询中返回整个实体或仅返回实体键。
这是什么意思?有filter(property_operator, value)
和fetch(limit, offset=0)
而且我相信values()
App Engine 上的 django-nonrel 支持。那么这是什么意思呢?
您可以执行标准查询,如下所示:
results = MyModel.all().filter('foo =', 'bar').fetch(20)
这将返回一个实体列表(db.Model 实例)。或者,您可以执行仅键查询,如下所示:
results = MyModel.all(keys_only=True).filter('foo =', 'bar').fetch(20)
这将只返回匹配实体(db.Key 实例)的键,并且比第一个查询执行得更快。
这意味着如果您只需要对象的键(可以找到它的唯一标识符)而不是其所有属性,则可以避免检索所有这些属性的额外开销。您可以使用 keys_only 参数来执行此操作。
例如,
SomeModel.all(keys_only=True).fetch(10)
将只返回 SomeModel 实体的关键对象,而不是带有属性的完整对象。
这可能会让您了解更多关于键和完整对象之间的区别的信息: http ://code.google.com/appengine/docs/python/datastore/entities.html