가 어떻게 그 대신 USER_ID에 대해 일치 그래서이데이터 저장소에 마지막으로 추가 된 모델을 반환하는 방법은 무엇입니까?
videos = Video.gql('WHERE user_id = :1', '18').fetch(8)
을 수정할 수는 지난 8 비디오 객체 중 하나가 데이터 저장소에 추가 반환?
가 어떻게 그 대신 USER_ID에 대해 일치 그래서이데이터 저장소에 마지막으로 추가 된 모델을 반환하는 방법은 무엇입니까?
videos = Video.gql('WHERE user_id = :1', '18').fetch(8)
을 수정할 수는 지난 8 비디오 객체 중 하나가 데이터 저장소에 추가 반환?
당신은 쿼리의 유형에 대한
created = db.DateTimeProperty(auto_now_add=True)
와 모델을 저장해야합니다.
이 질문에 대한 대답은 정확하지 않습니다. 모델에 created
속성을 추가하고 -created
및 -__key__
으로 정렬 된 쿼리를 비교하면 일치하지 않는 것으로 나타납니다.
자동으로 설정된 키는 단조롭게 증가하지 않습니다. 그 좋은 읽을 거리가 here입니다.
이 시도 :
Video.gql('ORDER BY __key__ DESC').fetch(8)
것은 사실,이에 대한 모든 GQL
를 사용할 필요가 없습니다 :
Video.all().order('-__key__').fetch(8)
완벽합니다. 그래도 '-__ key__'은 무엇을 의미합니까? – zakdances
'- __ key __ '는 키에 의한 내림차순 (그러므로'-')을 의미합니다. 사용자 지정 키를 지정하지 않으면 각 엔터티는 이전 키보다 큰 키 ID를 가져옵니다. 키 ID는 64 비트 부호없는 정수 ('long's)입니다. 'Video.all() .get() .key(). id()'와 같은 엔티티에서 얻을 수 있습니다. –
또 다른 해결 방법을 만든 날짜를 저장하는 속성을 가지고하는 것입니다 이렇게하면 마지막으로 생성 된 쿼리를 포함하여 여러 쿼리를 쿼리 할 수 있습니다.
예
class Video(db.Model):
...
user_id = ...
date_created = db.DateTimeProperty(auto_now_add=True)
...
가 검색 지난 8 개 추가 :이 외에도
Video.all().order("-date_created").fetch(8)
, 당신은 날짜 범위에 의해 등등을 더 흥미 쿼리를 할 수 있습니다.
희망도 도움이됩니다.
키 ID 할당은 "여러 데이터 센터에서"엔터티를 분할하는 것과 절대적으로 관련이 없습니다. –
"여러 데이터 센터를 넘어서"라고 말하려고 생각한 것이 아닙니다. 나는 그 부분을 편집 할 것이다. 그 점을 지적 해 주셔서 감사합니다. –