アイデア/代替案の検索から、GAEデータストアクエリに一致するアイテムのページ/アイテム数/ナビゲーションの提供まで、 REVERSINGORDERによって単一のカーソルでページナビゲーションを逆方向にする方法のヒントを見つけることができました。
class CursorTests(test_utils.NDBTest):
def testFirst(self):
class Bar(model.Model):
value = model.IntegerProperty()
self.entities = []
for i in range(10):
e = Bar(value=i)
e.put()
self.entities.append(e)
q = Bar.query()
bars, next_cursor, more = q.order(Bar.key).fetch_page(3)
barz, another_cursor, more2 = q.order(-Bar.key).fetch_page(3, start_cursor=next_cursor)
self.assertEqual(len(bars), len(barz))
残念ながら、このエラーで失敗しました。
トレースバック(最後の最後の呼び出し):ファイル "/Users/reiot/Documents/Works/appengine-ndb-experiment/ndb/query_test.py"、32行目、testFirst self.assertEqual(len(bars)、len(baz) )AssertionError:3!= 2
はい、逆クエリで境界内のアイテムが欠落しています。
bars = [Bar(key=Key('Bar', 1), value=0), Bar(key=Key('Bar', 2), value=1), Bar(key=Key('Bar', 3), value=2)]
bars = [Bar(key=Key('Bar', 2), value=1), Bar(key=Key('Bar', 1), value=0)]
この問題を解決するにはどうすればよいですか?