2017-04-18 9 views
0

Ich frage mich, ob die Batch-Anfrage an den Datenspeicher die Datensatzreihenfolge bei Abschluss der Anfrage erhalten bleibt?Google Cloud Datastore-Stapeloperationssequenz

Ich verwende die Standard-Google-Cloud/Datenspeicher-Client-Bibliothek, um eine Batch-Get-Anforderung wie diese auszuführen (aus den Datastore-Dokumenten).

Ich vermutete, dass die Ergebnisse in der gleichen Reihenfolge wie in einem Tastenfeld sein werden, aber auf meinem Arbeitsbeispiel ist es nicht.

Also, mache ich etwas falsch, oder ist es Google Datastore nicht die Reihenfolge im Batch-Betrieb bewahrt?

Antwort

1

Um geordnete Ergebnisse zu erhalten, müssen Sie eine Abfrage verwenden. Zuerst filtern Sie nach key Werten, dann bestellen Sie nach der gewünschten Eigenschaft (en).

Sehen Sie diese Dokumentation für weitere Informationen:

How to filter by Key

How to order results

+0

Eigentlich das ist nicht das, was ich suche. Ich muss genau diese Entitäten mit diesen Schlüsseln erhalten. Übrigens, was ist mit Performances von direkten Schlüsseln, die Abfragemöglichkeiten holen und abfragen? – QuestionAndAnswer

+1

Nach meinem Verständnis sortiert der Datenspeicher standardmäßig Entitäten nach Schlüsselwerten. Wenn Sie keine Abfrage verwenden, um eine andere Sortierung zu ermitteln, sollten die übereinstimmenden Entitäten nach Schlüssel sortiert abgerufen werden. Es sieht so aus, als müssten Sie die Ergebnisse nach dem Abrufen in Ihrer Anwendung sortieren (vorausgesetzt, Sie können Ihre ursprüngliche Sortierung nicht in einem Datenspeicherbefehl übersetzen). In Bezug auf die Performance sollte die 'get()' Methode schneller sein als eine Abfrage mit 'key' Filter, aber ich würde keinen großen Unterschied erwarten, es sei denn, Sie führen täglich Hunderttausende oder Millionen von Anfragen aus. –

+0

So wird es derzeit implementiert. Manuak sortiert in mir Code. Aber ich mag diese Lösung wirklich nicht. Si, für jetzt werde ich es so lassen, vielleicht werden Datastore-Entwickler etwas einführen, das dieses Problem in der Zukunft löst. – QuestionAndAnswer