class MyEntity(db.Model):
timestamp = db.DateTimeProperty()
title = db.StringProperty()
number = db.FloatProperty()
db.GqlQuery("SELECT * FROM MyEntity WHERE title = 'mystring' AND timestamp >= date('2012-01-01') AND timestamp <= date('2012-12-31') ORDER BY timestamp DESC").fetch(1000)
これにより、App Engine で最大 600 個のエンティティが取得されます。私の開発サーバーでは期待どおりに動作し、index.yaml をビルドし、それをアップロードしてサーバーでテストしますが、アプリ エンジンでは何も返されません。
Index:
- kind: MyEntity
properties:
- name: title
- name: timestamp
direction: desc
データストア ビューアでクエリを分割して、問題がどこにあるかを確認し、タイムスタンプの制約が期待どおりに機能することを確認しました。WHERE title = 'mystring'
一連のエンティティを返す必要がある場合、クエリは何も返しません。
プロパティと演算子の間のスペースで呼び出さなければならない面倒なフィルタリングを漠然と覚えていますが.filter("prop =",propValue)
、これはGqlQueryであるため、そうではありません(GQLでもその形式を試しました)。
私の問題が何か知っている人はいますか?
考えられることの 1 つは、開発サーバーで新しいインデックスを作成してアップロードする前に、BulkLoader.py を介して MyEntity エンティティのリストをアプリに追加したことです。それは違いを生むでしょうか?