Ich versuche, nach Werten innerhalb eines Datumsbereichs für einen bestimmten Typ zu suchen, aber Inhalt für in der Datenbank vorhandene Daten wird von der Abfrage nicht zurückgegeben. HierGoogle AppEngine: Datumsbereich gibt keine korrekten Ergebnisse zurück
ist ein Extrakt aus der Python-Code:
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)
Die GQL Daten zurückgibt, aber einige Zeilen, die ich erwarte fehlen:
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
ich die Daten über de bulkload Skript hochgeladen . Ich kann nur daran denken, dass die Indizes beschädigt oder ähnlich sind. Die gleiche Abfrage wurde für eine andere Tabelle verwendet. Aber ich musste es durch neuen Inhalt aus einer anderen Quelle ersetzen, und dieser neue Inhalt antwortet nicht auf die gleiche Weise auf die Anfrage. Die Tabelle hat ungefähr 700.000 Zeilen, wenn das einen Unterschied macht.
Ich habe mehr Forschung getan und es scheint, dass es ein Fehler im appEngine DataStore ist. Für weitere Informationen über den Fehler überprüfen Sie diesen Link: http://code.google.com/p/googleappengine/issues/detail?id=901
Ich habe versucht, den Index zu löschen und es ohne Glück neu zu erstellen.
danke
Ja, die vorhandenen Daten haben den gleichen Typ wie in der Abfrage. Ich habe es getestet, während ich die Ergebnisse in das Protokoll geschrieben habe, und es ist korrekt. –
Ich habe die Frage mit weiteren Informationen aktualisiert. –
Fantastisches Skript, ich werde es heute Abend versuchen. Hast du den HTML-Code, der den new_last_key_str aus dem JSON holt und ihn für eine Aktualisierung in die URL zurücksetzt? –