0
我想知道如果批處理請求數據存儲將保存記錄順序時請求完成?谷歌雲數據存儲批處理操作序列
我使用標準的谷歌雲/數據存儲客戶端庫來執行批量獲取請求,像這樣(來自Datastore的文檔)。
const keys = [taskKey1, taskKey2];
datastore.get(keys)
.then((results) => {
// Tasks retrieved successfully.
const tasks = results[0];
console.log(tasks);
});
我懷疑結果的排列順序與按鍵數組的順序相同,但是在我的工作示例中並不是這樣。
那麼,我做錯了什麼,或者它是否Google Datastore不保留批量操作的順序?
其實這是不是我在尋找。我需要得到這個實體使用這個鍵。順便說一下,直接鍵獲取和查詢獲取方式的性能如何? – QuestionAndAnswer
據我所知,默認情況下,數據存儲按鍵值排序實體。除非您使用查詢來確定不同的排序,否則應該檢索按鍵排序的匹配實體。看起來您需要在應用程序中對結果進行排序(檢索後,假設您無法在Datastore命令中轉換原始排序)。關於性能,'get()'方法應該比使用'key'過濾器的查詢更快,但除非每天執行數十萬或數百萬次請求,否則我不會期望有相當大的差異。 –
這就是目前實施的方式。 Manuak在我的代碼中排序。但我真的不喜歡這個解決方案。 Si,現在我會離開它,也許Datastore的開發者會在未來推出解決這個問題的東西。 – QuestionAndAnswer