2011-09-01 39 views

回答

1

你應該用

created = db.DateTimeProperty(auto_now_add=True) 

保存你的模型對於這種類型的查詢。

在這個問題上接受的答案是不正確的。如果您將created屬性添加到模型中,並比較-created-__key__訂購的查詢,您將看到它們不匹配。

自動設置的鍵不會單調遞增。一些很好的閱讀here

+0

密鑰ID分配與「在多個數據中心之間」分割實體完全無關。 –

+0

我認爲「通過多個數據中心」並不是我想說的。我將編輯該部分。感謝您指出了這一點。 –

1

試試這個:

Video.gql('ORDER BY __key__ DESC').fetch(8) 

其實,你並不需要使用GQL在所有這樣的:

Video.all().order('-__key__').fetch(8) 
+0

這很完美。 '-__ key__'是什麼意思? – zakdances

+0

''-__ key __''表示鍵的降序(因此是'-')。如果您未指定自定義密鑰,則每個實體都將獲得大於先前密鑰的密鑰ID。密鑰ID是64位無符號整數(好,「長」)。你可以在任何像這樣的實體上獲得它:'Video.all()。get().key().id()'。 –

2

另一種解決方法是將具有存儲創建日期屬性,這將允許您查詢包括上次創建的一堆不同的查詢。

class Video(db.Model): 
    ... 
    user_id = ... 
    date_created = db.DateTimeProperty(auto_now_add=True) 
    ... 

找回過去的8個補充:

Video.all().order("-date_created").fetch(8) 

除此之外,您可以按日期範圍做更有意思的查詢等。

希望這也有幫助!

相關問題