我讀谷歌App Engine的doc和發現this線難以理解App Engine數據存儲可以從查詢中返回整個實體還是隻返回實體鍵?
的App Engine數據存儲可以從查詢返回整個實體或唯一實體鍵。
這是什麼意思?有filter(property_operator, value)
和fetch(limit, offset=0)
我相信Django-Nonrel在App Engine上支持values()
。那麼這是什麼意思?
我讀谷歌App Engine的doc和發現this線難以理解App Engine數據存儲可以從查詢中返回整個實體還是隻返回實體鍵?
的App Engine數據存儲可以從查詢返回整個實體或唯一實體鍵。
這是什麼意思?有filter(property_operator, value)
和fetch(limit, offset=0)
我相信Django-Nonrel在App Engine上支持values()
。那麼這是什麼意思?
你可以做一個標準的查詢,例如:
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