Google App Engine 1.3.5で導入されたQueryのEnd Cursorsを使ってみる。

Google App Engine 1.3.5で導入されたQueryのEnd Cursorsを使ってみる。

QueryのEnd Cursorsを使うと、カーソルの終了地点を指定することが出来る。

使用するモデル

from google.appengine.ext import db
class Person(db.Model):
    ...

Personクラスには、positionの順に登録されている。

> q = Person.all().order('position')
> for p in q.fetch(5): print p.full_name
>
氏名0
氏名1
氏名2
氏名3
氏名4

6件目を示すカーソル。

> q.fetch(5)
> cursor1 = q.cursor()

11件目を示すカーソル。

> q.fetch(10)
> cursor2 = q.cursor()

16件目を示すカーソル。

> q.fetch(15)
> cursor3 = q.cursor()

6件目から10件目までを取得する。

> r = Person.all().order('position')
> r.with_cursor(cursor1, cursor2)
> for p in r.fetch(100): print p.full_name
氏名5
氏名6
氏名7
氏名8
氏名9

6件目から15件目までを取得する。

> r.with_cursor(cursor1, cursor3)
> for p in r.fetch(100): print p.full_name
氏名5
(省略)
氏名14

Google App Engineのドキュメントには、End Cursorsの記述はまだないみたい。
Cursorsについては英語ドキュメントの「Query Cursors」を参照。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください