特定のタイプの日付範囲内の一部の値を検索しようとしていますが、データベースに存在する日付のコンテンツがクエリによって返されません。ここでGoogle AppEngine:日付範囲が正しい結果を返さない
は、Pythonのコードの抜粋です:
deltaDays = timedelta(days= 20)
endDate = datetime.date.today()
startDate = endDate - deltaDays
result = db.GqlQuery(
"SELECT * FROM myData WHERE mytype = :1 AND pubdate >= :2 and pubdate <= :3", type, startDate, endDate
)
class myData(db.Model):
mytype = db.StringProperty(required=True)
value = db.FloatProperty(required=True)
pubdate = db.DateTimeProperty(required=True)
GQLはデータを返しますが、私は期待していいくつかの行が欠落している:
2009-03-18 00:00:00
(missing date in results: 2009-03-20 data exists in database)
2009-03-23 00:00:00
2009-03-24 00:00:00
2009-03-25 00:00:00
2009-03-26 00:00:00
(missing date in results: 2009-03-27 data exists in database)
2009-03-30 00:00:00
(missing date in results: 2009-03-31. data exists in database)
2009-04-01 00:00:00
2009-04-02 00:00:00
2009-04-03 00:00:00
2009-04-06 00:00:00
を私はデバルクロードスクリプトを介してデータをアップロード。私は、インデックスが壊れているか類似していると考えることができます。この同じクエリは、私が持っていた別のテーブルで動作するために使用されました。しかし、私はそれを別のソースから新しいコンテンツに置き換えなければなりませんでした。この新しいコンテンツは同じ方法でクエリに応答していません。差があれば、テーブルには約700,000行があります。
私はappEngine DataStoreのバグであると思われています。 バグの詳細については、このリンクを確認してください: http://code.google.com/p/googleappengine/issues/detail?id=901
私はインデックスを削除し、運がないと再作成しようとしました。
ありがとうございました
はい、既存のデータはクエリ内のデータと同じ型です。私は結果をログに印刷している間にテストしましたが、それは正しいです。 –
私はより多くの情報で質問を更新しました。 –
素晴らしいスクリプト、私は今夜それを試してみましょう。あなたは、jsonからnew_last_key_strを取得し、それをURLに戻して更新するHTMLを持っていますか? –