2011-09-01 3 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 비트 부호없는 정수 ('long's)입니다. '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) 

, 당신은 날짜 범위에 의해 등등을 더 흥미 쿼리를 할 수 있습니다.

희망도 도움이됩니다.

관련 문제